runGenerate method

Future<int> runGenerate(
  1. MasonGenerator generator,
  2. Directory targetDir
)

Runs the generation process

Implementation

Future<int> runGenerate(MasonGenerator generator, Directory targetDir) async {
  var vars = getTemplateVars();

  if (!targetDir.existsSync()) {
    targetDir.createSync(recursive: true);
  }

  final target = DirectoryGeneratorTarget(targetDir);

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

  final _ = await generator.generate(target, vars: vars, logger: logger);

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

  await template.onGenerateComplete(
    logger,
    target.dir,
  );

  return ExitCode.success.code;
}