@@ -12,18 +12,15 @@ import 'package:very_good_cli/src/commands/create/templates/templates.dart';
1212// A valid Dart identifier that can be used for a package, i.e. no
1313// capital letters.
1414// https://dart.dev/guides/language/language-tour#important-concepts
15- final RegExp _identifierRegExp = RegExp ('[a-z_][a-z0-9_]*' );
16- final RegExp _orgNameRegExp = RegExp (r'^[a-zA-Z][\w-]*(\.[a-zA-Z][\w-]*)+$' );
15+ final _identifierRegExp = RegExp ('[a-z_][a-z0-9_]*' );
16+ final _orgNameRegExp = RegExp (r'^[a-zA-Z][\w-]*(\.[a-zA-Z][\w-]*)+$' );
1717
1818const _defaultOrgName = 'com.example.verygoodcore' ;
1919const _defaultDescription = 'A Very Good Project created by Very Good CLI.' ;
2020
2121/// A method which returns a [Future<MasonGenerator>] given a [MasonBundle] .
2222typedef MasonGeneratorFromBundle = Future <MasonGenerator > Function (MasonBundle );
2323
24- /// A method which returns a [Future<MasonGenerator>] given a [Brick] .
25- typedef MasonGeneratorFromBrick = Future <MasonGenerator > Function (Brick );
26-
2724/// {@template create_subcommand}
2825/// Generic class for sub commands of [CreateCommand] .
2926/// {@endtemplate}
@@ -50,9 +47,7 @@ abstract class CreateSubCommand extends Command<int> {
5047 CreateSubCommand ({
5148 required this .logger,
5249 @visibleForTesting required MasonGeneratorFromBundle ? generatorFromBundle,
53- @visibleForTesting required MasonGeneratorFromBrick ? generatorFromBrick,
54- }) : _generatorFromBundle = generatorFromBundle ?? MasonGenerator .fromBundle,
55- _generatorFromBrick = generatorFromBrick ?? MasonGenerator .fromBrick {
50+ }) : _generatorFromBundle = generatorFromBundle ?? MasonGenerator .fromBundle {
5651 argParser
5752 ..addOption (
5853 'output-directory' ,
@@ -69,20 +64,20 @@ abstract class CreateSubCommand extends Command<int> {
6964 // Add the templates arg if the command has multiple templates.
7065 if (this is MultiTemplates ) {
7166 final multiTemplates = this as MultiTemplates ;
72- final defaultTemplateName = multiTemplates.defaultTemplateName;
7367 final templates = multiTemplates.templates;
68+ final defaultTemplateName = multiTemplates.defaultTemplateName;
7469
7570 argParser.addOption (
7671 'template' ,
7772 abbr: 't' ,
7873 help: 'The template used to generate this new project.' ,
7974 defaultsTo: defaultTemplateName,
80- allowed: templates.map ((element ) => element .name).toList (),
75+ allowed: templates.map ((template ) => template .name).toList (),
8176 allowedHelp: templates.fold <Map <String , String >>(
8277 {},
83- (previousValue, element ) => {
84- ...previousValue ,
85- element .name: element .help,
78+ (previousTemplate, template ) => {
79+ ...previousTemplate ,
80+ template .name: template .help,
8681 },
8782 ),
8883 );
@@ -109,7 +104,6 @@ abstract class CreateSubCommand extends Command<int> {
109104 /// The logger user to notify the user of the command's progress.
110105 final Logger logger;
111106 final MasonGeneratorFromBundle _generatorFromBundle;
112- final MasonGeneratorFromBrick _generatorFromBrick;
113107
114108 /// [ArgResults] which can be overridden for testing.
115109 @visibleForTesting
@@ -185,31 +179,17 @@ abstract class CreateSubCommand extends Command<int> {
185179 return match != null && match.end == name.length;
186180 }
187181
188- Future <MasonGenerator > _getGeneratorForTemplate () async {
189- try {
190- final brick = Brick .version (
191- name: template.bundle.name,
192- version: '^${template .bundle .version }' ,
193- );
194- logger.detail (
195- '''Building generator from brick: ${brick .name } ${brick .location .version }''' ,
196- );
197- return await _generatorFromBrick (brick);
198- } on Exception catch (error) {
199- logger.detail ('Building generator from brick failed: $error ' );
200- }
201- logger.detail (
202- '''Building generator from bundle ${template .bundle .name } ${template .bundle .version }''' ,
203- );
204- return _generatorFromBundle (template.bundle);
205- }
206-
207182 @override
208183 Future <int > run () async {
209184 final template = this .template;
210- final generator = await _getGeneratorForTemplate ();
211- final result = await runCreate (generator, template);
185+ final bundle = template.bundle;
212186
187+ logger.detail (
188+ 'Building generator from bundle ${bundle .name } ${bundle .version }' ,
189+ );
190+
191+ final generator = await _generatorFromBundle (bundle);
192+ final result = await runCreate (generator, template);
213193 return result;
214194 }
215195
@@ -325,7 +305,7 @@ mixin MultiTemplates on CreateSubCommand {
325305 final templateName =
326306 argResults['template' ] as String ? ?? defaultTemplateName;
327307
328- return templates.firstWhere ((element ) => element .name == templateName);
308+ return templates.firstWhere ((template ) => template .name == templateName);
329309 }
330310}
331311
0 commit comments