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 {
  var projectName = styleBold.wrap(argResults!['name']);
  var progress = logger.progress("Creating project");
  final brick = Brick.git(
    const GitPath(
      'https://github.com/helightdev/reedmace',
      path: 'bricks/reedmace_project',
    ),
  );
  progress.update("Downloading brick");
  final generator = await MasonGenerator.fromBrick(brick);
  final target = DirectoryGeneratorTarget(Directory.current);
  var vars = <String, dynamic>{'projectName': argResults!['name']};
  progress.update("Generating project $projectName");
  await generator.generate(target, vars: vars, logger: logger);
  progress.update("Running post generation hooks");
  await generator.hooks.postGen(vars: vars);
  progress.complete("Project $projectName created!");
  return ExitCode.success.code;
}