run method
Runs the FLX CLI with the provided command-line arguments.
arguments
- List of command-line arguments to process.
Supports commands like:
gen:feature <name>
- Generate a complete featuregen:model <name>
- Generate a model with Freezed/Equatablegen:usecase <name>
- Generate a use caseconfig init
- Initialize configuration--help
- Show help information--version
- Show version information
Implementation
Future<void> run(List<String> arguments) async {
// Handle special case for config --state command
if (arguments.length >= 3 && arguments[0] == 'config' && arguments[1] == '--state') {
await _setStateManager(arguments[2]);
return;
}
final parser = ArgParser()
..addFlag('help', abbr: 'h', help: 'Show this help message')
..addFlag('version', abbr: 'v', help: 'Show version information');
try {
final results = parser.parse(arguments);
if (results['help']) {
_showHelp();
return;
}
if (results['version']) {
_showVersion();
return;
}
if (results.rest.isEmpty) {
_showHelp();
return;
}
final command = results.rest.first;
final args = results.rest.skip(1).toList();
switch (command) {
case 'gen':
await _handleGenCommand(args);
break;
case 'config':
await _handleConfigCommand(args);
break;
default:
print('Unknown command: $command');
_showHelp();
}
} catch (e) {
print('Error: $e');
_showHelp();
}
}