|
| 1 | +import {Flags} from '@oclif/core' |
| 2 | + |
| 3 | +import {BaseCommand} from '@cli/baseCommands/index.js' |
| 4 | +import {isGradleBuildEnabled, setGradleBuildEnabled} from '@cli/utils/godot.js' |
| 5 | + |
| 6 | +export default class UtilAndroidBuildMethod extends BaseCommand<typeof UtilAndroidBuildMethod> { |
| 7 | + static override args = {} |
| 8 | + static override description = 'Gets and sets the Android build method in export_presets.cfg' |
| 9 | + static override examples = [ |
| 10 | + '<%= config.bin %> <%= command.id %>', |
| 11 | + '<%= config.bin %> <%= command.id %> --legacy', |
| 12 | + '<%= config.bin %> <%= command.id %> --gradle', |
| 13 | + ] |
| 14 | + |
| 15 | + static override flags = { |
| 16 | + legacy: Flags.boolean({char: 'l', description: 'use legacy build method'}), |
| 17 | + gradle: Flags.boolean({char: 'g', description: 'use gradle build method'}), |
| 18 | + } |
| 19 | + |
| 20 | + public async run(): Promise<void> { |
| 21 | + const {flags} = await this.parse(UtilAndroidBuildMethod) |
| 22 | + |
| 23 | + if (flags.legacy && flags.gradle) { |
| 24 | + this.error('Cannot use both --legacy and --gradle flags together') |
| 25 | + } |
| 26 | + |
| 27 | + if (!flags.legacy && !flags.gradle) { |
| 28 | + // Show current build method |
| 29 | + const buildMethod = (await isGradleBuildEnabled()) ? 'gradle' : 'legacy' |
| 30 | + this.log(`Current Android build method: ${buildMethod}`) |
| 31 | + return |
| 32 | + } |
| 33 | + |
| 34 | + const isGradle = flags.gradle ? true : false |
| 35 | + const buildMethod = flags.legacy ? 'legacy' : 'gradle' |
| 36 | + this.log(`Setting Android build method to: ${buildMethod}`) |
| 37 | + // Set the build method in the export presets file |
| 38 | + await setGradleBuildEnabled(isGradle) |
| 39 | + } |
| 40 | +} |
0 commit comments