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 argFlavor = argResults.getOptionFlavor(defaultTo: Constants.dev);
  final argGitsYaml = argResults.getOptionGitsYaml();

  YamlHelper.validateGitsYaml(argGitsYaml);

  final config = FirebaseHelper.getFirebaseConfig(argGitsYaml);
  if (config.isEmpty) {
    StatusHelper.warning(
        'Cannot setup flavor firebase, You don\'t have config "firebase" in gits.yaml');
  } else {
    final devDir = config['google_service_dev_dir'];
    final stagDir = config['google_service_stag_dir'];
    final prodDir = config['google_service_prod_dir'];
    final outputAndroid = config['output_android_dir'];
    final outputIos = config['output_ios_dir'];

    switch (argFlavor) {
      case Constants.prod:
        moveAndroidGoogleService(prodDir, outputAndroid, argFlavor);
        moveIosGoogleService(prodDir, outputIos, argFlavor);
        break;
      case Constants.stag:
        moveAndroidGoogleService(stagDir, outputAndroid, argFlavor);
        moveIosGoogleService(stagDir, outputIos, argFlavor);
        break;
      default:
        moveAndroidGoogleService(devDir, outputAndroid, argFlavor);
        moveIosGoogleService(devDir, outputIos, argFlavor);
    }
  }
}