main function
Implementation
Future<void> main(List<String> args) async {
// Handle --version flag
if (args.contains('--version')) {
await VersionCommand().run();
return;
}
final runner = CommandRunner<void>('dartvel', 'The Dartvel CLI tool.')
..addCommand(InitCommand())
..addCommand(DoctorCommand())
..addCommand(DevCommand())
// run and start are aliases in DevCommand
..addCommand(RoutesCommand())
..addCommand(BuildCommand())
..addCommand(ArtifactCommand())
..addCommand(CaptureCommand())
..addCommand(EngineCommand())
..addCommand(DeployCommand())
..addCommand(PreviewCommand())
..addCommand(PrerenderCommand())
..addCommand(PluginCommand())
..addCommand(UpdatesCommand())
..addCommand(QueueCommand())
..addCommand(CacheCommand())
..addCommand(DbCommand())
..addCommand(GenerateCommand())
..addCommand(LogsCommand())
..addCommand(TracesCommand())
..addCommand(MetricsCommand())
..addCommand(AiCommand())
..addCommand(AdminCommand())
..addCommand(DevtoolsCommand())
..addCommand(ShCommand())
..addCommand(TaskCommand())
..addCommand(TestCommand())
..addCommand(VersionCommand());
try {
await runner.run(args);
} catch (e) {
if (e is UsageException) {
stderr.writeln(e.message);
stderr.writeln(e.usage);
exit(64);
} else {
stderr.writeln('An error occurred: $e');
exit(1);
}
}
}