run method

  1. @override
Future<void> run(
  1. List<String> args
)
override

Executes the command using the provided command-line args.

Implementation

@override
Future<void> run(List<String> args) async {
  if (args.isEmpty) {
    LoggerService.error('Usage: $usage');
    return;
  }

  final feature = args.first.trim();

  final config = await ConfigService.load();
  final template = await TemplateService.load(
    config.defaultTemplate,
  );

  LoggerService.section('Generating feature: $feature');

  final generated = await const FeatureGenerationService().generate(
    config: config,
    template: template,
    feature: feature,
  );

  if (!generated) {
    LoggerService.blank();
    LoggerService.info(
      'Feature "$feature" generation cancelled.',
    );
    LoggerService.blank();
    return;
  }

  LoggerService.blank();
  LoggerService.success(
    'Feature "$feature" generated successfully.',
  );
  LoggerService.blank();
}