execute method

  1. @override
Future<int> execute(
  1. List<String> arguments
)
override

Executes the command with the provided arguments. Returns an integer exit code (0 for success).

Implementation

@override
Future<int> execute(List<String> arguments) async {
  if (arguments.isEmpty) {
    throw const ValidationException(
      'Error: Template name is required.\n\nUsage:\n  flutter_setup info <template_name>',
    );
  }

  final templateName = arguments.first.trim();
  final template = _repository.getTemplate(templateName);
  final config = template.config;

  _output.info('Template: ${config.name}\n');
  _output.info('Description:\n${config.description}\n');

  _output.info('Dependencies:');
  if (config.dependencies.isNotEmpty) {
    for (final dep in config.dependencies) {
      _output.info('  • ${dep.toString()}');
    }
  } else {
    _output.info('  (none)');
  }
  _output.info('');

  _output.info('Dev Dependencies:');
  if (config.devDependencies.isNotEmpty) {
    for (final devDep in config.devDependencies) {
      _output.info('  • ${devDep.toString()}');
    }
  } else {
    _output.info('  (none)');
  }
  _output.info('');

  _output.info('Folders:');
  if (config.folders.isNotEmpty) {
    for (final folder in config.folders) {
      _output.info('  • ${folder.path}');
    }
  } else {
    _output.info('  (none)');
  }

  return 0;
}