generateIdeaRunConfigurations static method

Future<void> generateIdeaRunConfigurations(
  1. String filePath,
  2. String flavor
)

Implementation

static Future<void> generateIdeaRunConfigurations(
  String filePath,
  String flavor,
) async {
  final file = File(filePath);

  if (!file.existsSync()) {
    file.createSync(recursive: true);
  }

  final builder = XmlBuilder();

  builder.element('component', attributes: {'name': 'ProjectRunConfigurationManager'}, nest: () {
    builder.element('configuration', attributes: {
      'default': 'false',
      'name': 'main_$flavor.dart',
      'type': 'FlutterRunConfigurationType',
      'factoryName': 'Flutter',
    }, nest: () {
      builder.element('option', attributes: {
        'name': 'buildFlavor',
        'value': flavor,
      });

      builder.element('option', attributes: {
        'name': 'filePath',
        'value': '\$PROJECT_DIR\$/${AppEnum.libDir}/main.dart',
      });

      builder.element('option', attributes: {
        'name': 'additionalArgs',
        'value': '--dart-define=FLAVOR=$flavor',
      });

      builder.element('method', attributes: {
        'v': '2',
      });
    });
  });

  String content = builder.buildDocument().toXmlString(pretty: true);
  await file.writeAsString(content);
}