run method
Runs this command.
The return value is wrapped in a Future
if necessary and returned by
CommandRunner.runCommand
.
Implementation
@override
Future<void> run() async {
final configPath = argResults?['config'];
final showConfig = argResults?['show-config'] ?? false;
final target = argResults?['target'] as String;
// Load config dynamically or use persisted one
Config().loadConfig(configPath);
if (showConfig) {
Helpers.showUserConfig();
return;
}
/// Supported platforms for flutter default flow.
const validPlatforms = {
'ios',
'android',
'web',
'macos',
'windows',
'linux',
};
final platforms = target.toLowerCase() == 'all'
? validPlatforms
: target.split(',').map((e) => e.trim()).toSet();
// Validate platform input
for (var platform in platforms) {
if (!validPlatforms.contains(platform)) {
print('❌ Unsupported platform: $platform');
exit(1);
}
}
/// If Advance Pipeline is disabled, use Default Flow
if (Config().config.pipelineSteps == null) {
await Kplatforms.buildAndProcessPlatforms(platforms);
} else {
/// Advance Pipeline is enabled, go with user's custom flow
await Helpers.executePipeline();
exit(0);
}
}