generatePrepsApp function

Future<void> generatePrepsApp(
  1. List<String> arguments
)

A command line app for generating preps.

Implementation

Future<void> generatePrepsApp(List<String> arguments) async {
  await basicCmdAppHelper<BasicAppArgs>(
    appTitle: 'XYZ Gen - Generate Preps',
    arguments: arguments,
    parser: ArgParser()
      ..addFlag(
        'help',
        abbr: 'h',
        negatable: false,
        help: 'Help information.',
      )
      ..addOption(
        'roots',
        abbr: 'r',
        help: 'Root directory paths separated by `&`.',
        defaultsTo: 'lib',
      )
      ..addOption(
        'subs',
        abbr: 's',
        help: 'Sub-directory paths separated by `&`.',
      )
      ..addOption(
        'patterns',
        abbr: 'p',
        help: 'Path patterns separated by `&`.',
      ),
    onResults: (parser, results) {
      return BasicAppArgs(
        rootPaths: splitArg(results['roots'])?.toSet(),
        subPaths: splitArg(results['subs'])?.toSet(),
        pathPatterns: splitArg(results['patterns'])?.toSet(),
      );
    },
    action: (parser, results, args) async {
      await generatePreps(
        rootDirPaths: args.rootPaths ?? {},
        subDirPaths: args.subPaths ?? {},
        pathPatterns: args.pathPatterns ?? {},
        prepMappers: [
          // Increase the build number by 1.
          (rawKey, value) {
            if (rawKey == 'version') {
              return Version.parse(value ?? '').increase(build: 1).toString();
            }
            return null;
          }
        ],
      );
    },
  );
}