run method

  1. @override
void run()
override

Executes the config command.

This method:

  1. Parses command line arguments
  2. Validates and loads the morpheme.yaml configuration
  3. Extracts flavor-specific dart defines
  4. Generates VS Code configurations
  5. Generates Android Studio configurations

Throws an exception if the morpheme.yaml file is invalid or missing.

Implementation

@override
void run() {
  final argTarget = argResults.getOptionTarget();
  final argMorphemeYaml = argResults.getOptionMorphemeYaml();

  YamlHelper.validateMorphemeYaml(argMorphemeYaml);
  final yaml = YamlHelper.loadFileYaml(argMorphemeYaml);
  projectName = yaml.projectName;

  Map<String, List<String>> dartDefines = {};

  yaml['flavor'].forEach((key, value) {
    final list = <String>[];
    value.forEach((key, value) {
      list.add('"${Constants.dartDefine}"');
      list.add('"$key=$value"');
    });
    dartDefines[key] = list;
  });

  // Generate VS Code configurations
  _generateVSCodeConfigurations(argTarget, dartDefines);

  // Generate Android Studio configurations
  _generateAndroidStudioConfigurations(argTarget, dartDefines, projectName);

  StatusHelper.success('morpheme config');
}