<commit_before>part of aqueduct;

class TemplateCreator extends CLICommand {
  ArgParser options = new ArgParser(allowTrailingOptions: false)
    ..addOption("template", abbr: "t", defaultsTo: "default", help: "Name of the template. Defaults to default. Available options are: default")
    ..addOption("name", abbr: "n", help: "Name of project in snake_case.")
    ..addOption("template-directory", hide: true)
    ..addOption("git-url", help: "Git url, will trigger generating the template from the specified git repository instead of pub.")
    ..addOption("git-ref", defaultsTo: "master", help: "Git reference (branch or commit), will trigger generating the template from the git repository instead of pub.")
    ..addOption("path-source", help: "Full path on filesystem, will trigger generating the template from the aqueduct source at path-source instead of pub.")
    ..addOption("version", defaultsTo: "any", help: "Version string for aqueduct on pub for template source.")
    ..addFlag("help", abbr: "h", negatable: false, help: "Shows this documentation");

  Future<int> handle(ArgResults argValues) async {
    if (argValues["help"] == true) {
      print("${options.usage}");
      return 0;
    }

    if (argValues["name"] == null || !isSnakeCase(argValues["name"])) {
      print("Invalid project name\n\n${options.usage}");
      return -1;
    }

    var destDirectory = destinationDirectoryFromPath(argValues["name"]);
    if (destDirectory.existsSync()) {
      print("${destDirectory.path} already exists.");
      return -1;
    }
    destDirectory.createSync();
<commit_msg>Cleaned up templatecreator help<commit_after>part of aqueduct;

class TemplateCreator extends CLICommand {
  ArgParser options = new ArgParser(allowTrailingOptions: false)
    ..addOption("template", abbr: "t", help: "Name of the template.", allowed: ["default"], defaultsTo: "default")
    ..addOption("name", abbr: "n", help: "Name of project in snake_case.")
    ..addOption("template-directory", hide: true)
    ..addOption("git-url", help: "Git url, will trigger generating the template from the specified git repository instead of pub.")
    ..addOption("git-ref", defaultsTo: "master", help: "Git reference (branch or commit), will trigger generating the template from the git repository instead of pub.")
    ..addOption("path-source", help: "Full path on filesystem, will trigger generating the template from the aqueduct source at path-source instead of pub.")
    ..addOption("version", defaultsTo: "any", help: "Version string for aqueduct on pub for template source.")
    ..addFlag("help", abbr: "h", negatable: false, help: "Shows this documentation");

  Future<int> handle(ArgResults argValues) async {
    if (argValues["help"] == true) {
      print("${options.usage}");
      return 0;
    }

    if (argValues["name"] == null || !isSnakeCase(argValues["name"])) {
      print("Invalid project name\n\n${options.usage}");
      return -1;
    }

    var destDirectory = destinationDirectoryFromPath(argValues["name"]);
    if (destDirectory.existsSync()) {
      print("${destDirectory.path} already exists.");
      return -1;
    }
    destDirectory.createSync();

{'fraction_non_alphanumeric': 0.13944723618090452, 'fraction_numerical': 0.0018844221105527637, 'mean_word_length': 4.1537216828478964, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2251051', 'n_tokens_mistral': 891, 'n_tokens_neox': 878, 'n_words': 300}