run method
Run the CLI with provided arguments
Implementation
Future<void> run(List<String> arguments) async {
// If no arguments, try to auto-detect from pubspec.yaml
if (arguments.isEmpty) {
await _runFromPubspec();
return;
}
// Handle special commands first
if (arguments.length == 1) {
if (arguments[0] == '--help' || arguments[0] == '-h') {
_printUsage();
exit(0);
} else if (arguments[0] == 'log') {
await _printConfig();
exit(0);
}
}
// Require at least 2 arguments for manual mode
if (arguments.length < 2) {
_printUsage();
exit(1);
}
final filePath = arguments[0];
final outputDir = arguments[1];
String className = 'AppLocalizations';
bool includeFlutterDelegates = true;
// Parse optional arguments
for (int i = 2; i < arguments.length; i++) {
final arg = arguments[i];
if (arg.startsWith('--class-name=')) {
className = arg.substring('--class-name='.length);
} else if (arg == '--no-flutter-delegates') {
includeFlutterDelegates = false;
} else if (arg == '--help' || arg == '-h') {
_printUsage();
exit(0);
} else {
print('❌ Unknown argument: $arg');
_printUsage();
exit(1);
}
}
try {
await _translatorService.generateFromFile(
filePath: filePath,
outputDir: outputDir,
className: className,
includeFlutterDelegates: includeFlutterDelegates,
);
} catch (e) {
print('❌ Generation failed: $e');
exit(1);
}
}