generatePrepsApp function
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;
}
],
);
},
);
}