Line data Source code
1 : import 'package:very_good_cli/src/commands/create/commands/commands.dart'; 2 : import 'package:very_good_cli/src/commands/create/templates/templates.dart'; 3 : 4 : /// {@template very_good_create_dart_cli_command} 5 : /// A [CreateSubCommand] for creating Dart command line interfaces. 6 : /// {@endtemplate} 7 : class CreateDartCLI extends CreateSubCommand with Publishable { 8 : /// {@macro very_good_create_dart_cli_command} 9 15 : CreateDartCLI({ 10 : required super.logger, 11 : required super.generatorFromBundle, 12 : required super.generatorFromBrick, 13 : }) { 14 30 : argParser.addOption( 15 : 'executable-name', 16 : help: 'The CLI executable name (defaults to the project name)', 17 : ); 18 : } 19 : 20 15 : @override 21 : String get name => 'dart_cli'; 22 : 23 3 : @override 24 : String get description => 'Generate a Very Good Dart CLI application.'; 25 : 26 1 : @override 27 1 : Template get template => VeryGoodDartCLITemplate(); 28 : 29 1 : @override 30 : Map<String, dynamic> getTemplateVars() { 31 1 : final vars = super.getTemplateVars(); 32 : 33 : final executableName = 34 2 : argResults['executable-name'] as String? ?? projectName; 35 : 36 1 : vars['executable_name'] = executableName; 37 : 38 : return vars; 39 : } 40 : }