run method

  1. @override
Future<int> run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
Future<int> run() async {
  final root = await rootOf(rootPath);

  final generator =
      switch ((profile, release)) {
        (true, _) => ConstructGenerator.profile,
        _ => ConstructGenerator.release,
      }(
        flavor: flavor,
        routesHandler: routesHandler,
        makers: constructs,
        logger: logger,
        fs: fs,
        rootPath: root.path,
        dartDefines: defines,
        generateConstructType: type,
      );

  await generator.clean(type: type);

  final progress = logger.progress('Building');

  await generator.generate(progress.update);

  progress.complete('Build succeeded');

  return 0;
}