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() async {
  final argTarget = argResults.getOptionTarget();
  final argFlavor = argResults.getOptionFlavor(defaultTo: Constants.dev);
  final argGitsYaml = argResults.getOptionGitsYaml();
  final argUseApp = argResults.getOptionUseApp();
  final argDriver = argResults.getOptionDriver();
  final argScreenshot = argResults.getOptionScreenshot();

  YamlHelper.validateGitsYaml(argGitsYaml);

  if (argUseApp.isEmpty) {
    await GitsModularHelper.format();
    'gits_cli l10n --gits-yaml "$argGitsYaml"'.run;
  }

  final flavor = FlavorHelper.byFlavor(argFlavor, argGitsYaml);

  FirebaseHelper.run(argFlavor, argGitsYaml);

  List<String> dartDefines = [];
  flavor.forEach((key, value) {
    dartDefines.add('${Constants.dartDefine} "$key=$value"');
  });
  String mode = argResults.getMode();

  FlutterHelper.run(
    'driver -t "$argTarget" $argDriver ${dartDefines.join(' ')} $argUseApp $argScreenshot --no-pub $mode',
    showLog: true,
  );

  StatusHelper.success('drive');
}