run method
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();
}
}