run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
void run() async {
try {
// Check if this is an init command
final isInit = argResults?.rest.firstOrNull == 'init';
if (isInit) {
// Handle init command directly
await _handleInitCommand();
return;
}
// Validate inputs
if (!_validateInputs()) return;
// Prepare configuration
final config = _prepareConfiguration();
// Validate configuration
if (!_configManager.validateConfig(config)) return;
// Execute generation
final success = await _executeGeneration(config);
if (success) {
_reportSuccess();
}
} catch (e, stackTrace) {
StatusHelper.failed(
'Local2Dart generation failed: $e',
suggestion: 'Check your configuration and try again',
examples: [
'morpheme generate local2dart --help',
'morpheme generate local2dart init',
],
);
print(stackTrace);
}
}