run method
Runs the CLI with the given command-line arguments.
Returns an exit code: 0 for success, non-zero for errors.
Implementation
Future<int> run(List<String> arguments) async {
final ArgParser argParser = _buildParser();
try {
final ArgResults results = argParser.parse(arguments);
// Process global flags
if (results.flag('help')) {
_printUsage(argParser);
return 0;
}
if (results.flag('version')) {
print('splendid_code_quality version: $version');
return 0;
}
// Process commands
if (results.command?.name == 'complexity') {
return _handleComplexityCommand(results.command!);
}
if (results.command?.name == 'loc') {
return _handleLocCommand(results.command!);
}
if (results.command?.name == 'cognitive') {
return _handleCognitiveCommand(results.command!);
}
if (results.command?.name == 'halstead') {
return _handleHalsteadCommand(results.command!);
}
if (results.command?.name == 'inheritance') {
return _handleInheritanceCommand(results.command!);
}
if (results.command?.name == 'report') {
return await _handleReportCommand(results.command!);
}
// No command provided
_printUsage(argParser);
return 0;
} on FormatException catch (e) {
print(e.message);
print('');
_printUsage(argParser);
return 1;
}
}