run method
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 make = switch ((profile, release)) {
(true, _) => ConstructGenerator.profile,
_ => ConstructGenerator.release,
};
final progress = TickedProgress('Building', level: logger.level);
// A generator per phase. `generateConstructType` is final, and each phase
// stages and promotes its own outputs, so they cannot share an instance.
for (final phase in _phases) {
final generator = make(
flavor: flavor,
routesHandler: routesHandler,
makers: constructs,
logger: logger,
fs: fs,
rootPath: root.path,
dartDefines: defines,
generateConstructType: phase,
);
await generator.generate(progress.update);
}
progress.complete('Build succeeded');
return 0;
}