run method

  1. @override
void run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
void run() {
  final configFileName = argResults?['config'] as String? ?? 'config.yaml';
  final force = argResults?['force'] ?? false;

  final configFile = File(configFileName);

  // Check if config file already exists
  if (configFile.existsSync() && !force) {
    print('⚠️  Config file "$configFileName" already exists!');
    print('');
    print('   To overwrite it, use: frx init --force');
    print('   Or specify a different name: frx init --config my-config.yaml');
    exit(1);
  }

  // Generate the starter config content
  final configContent = _generateStarterConfig();

  try {
    // Write the config file
    configFile.writeAsStringSync(configContent);
    print('✅ Successfully created "$configFileName"!');
    print('');
    print('📝 Next steps:');
    print('   1. Open "$configFileName" and configure your settings');
    print('   2. Add your API keys and tokens for cloud uploads');
    print('   3. Run "frx build" to start building and releasing!');
    print('');
    print(
        '📖 For detailed setup instructions, visit: ${FlutterReleaseXKstrings.documentaion} or ${FlutterReleaseXKstrings.documentaion2}');
  } catch (e) {
    print('❌ Failed to create config file: $e');
    exit(1);
  }
}