runCreate method

Future<int> runCreate(
  1. MasonGenerator generator,
  2. Template template
)

Implementation

Future<int> runCreate(MasonGenerator generator, Template template) async {
  var vars = getTemplateVars();

  final target = DirectoryGeneratorTarget(outputDirectory);

  await generator.hooks.preGen(
    vars: vars,
    onVarsChanged: (v) => vars = v,
    workingDirectory: target.dir.path,
    logger: logger,
  );

  // The app skeleton is scaffolded by `flutter create` in the pre-gen hook,
  // so the brick's own `lib/` and `pubspec.yaml` are expected to land on top.
  final _ = await generator.generate(
    target,
    vars: vars,
    logger: logger,
    fileConflictResolution: FileConflictResolution.overwrite,
  );

  await generator.hooks.postGen(
    vars: vars,
    onVarsChanged: (v) => vars = v,
    workingDirectory: target.dir.path,
    logger: logger,
  );

  await template.onGenerateComplete(
    logger,
    Directory(path.join(target.dir.path, projectName)),
  );

  return ExitCode.success.code;
}