main function

Future<void> main(
  1. List<String> args
)

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(InspectCommand())
    ..addCommand(McpCommand())
    ..addCommand(BuildCommand())
    ..addCommand(ArtifactCommand())
    ..addCommand(CaptureCommand())
    ..addCommand(WebosCommand())
    ..addCommand(SpecCommand())
    ..addCommand(EngineCommand())
    ..addCommand(EnsurePathCommand())
    ..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(UpdateCommand())
    ..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);
    }
  }
}