exec method

  1. @override
Future<void> exec(
  1. ExecContext context
)
override

Run command.

The contents of katana.yaml and the arguments of the command are passed to context.

コマンドを実行します。

contextkatana.yamlの内容やコマンドの引数が渡されます。

Implementation

@override
Future<void> exec(ExecContext context) async {
  final bin = context.yaml.getAsMap("bin");
  final flutter = bin.get("flutter", "flutter");
  final melos = bin.get("melos", "melos");
  final builderArguments = _tidbDataServiceBuilderArguments(context);
  final builderShellArguments = _shellArguments(builderArguments);
  final builderShellSuffix =
      builderShellArguments.isEmpty ? "" : " $builderShellArguments";
  if (File("melos.yaml").existsSync()) {
    await command(
      "Watch build_runner for all packages to generate code.",
      [
        melos,
        "exec",
        "--",
        "$flutter packages pub run build_runner watch "
            "--delete-conflicting-outputs$builderShellSuffix",
      ],
    );
  } else {
    await command(
      "Watch the project's build_runner to generate code.",
      [
        flutter,
        "packages",
        "pub",
        "run",
        "build_runner",
        "watch",
        "--delete-conflicting-outputs",
        ...builderArguments,
      ],
    );
  }
}