run static method

String run(
  1. List<String> arguments
)

Implementation

static String run(List<String> arguments) {
  final parser = ArgParser()
    ..addCommand('version')
    ..addCommand('help')
    ..addCommand('new')
    ..addCommand('serve')
    ..addCommand('make')
    ..addCommand('migrate')
    ..addCommand('queue')
    ..addCommand('schedule')
    ..addCommand('test')
    ..addCommand('build');

  final results = parser.parse(arguments);

  if (results.command == null) {
    if (results.arguments.isEmpty) {
      return _showHelp();
    }
  }

  final command = results.command?.name;
  final commandArgs = results.command?.arguments ?? [];

  switch (command) {
    case 'version':
      return 'Dartian $version';
    case 'help':
      return _showHelp();
    case 'serve':
      // Serve command is now handled in bin/dartian.dart with ServeCommand
      return 'Use: dartian serve [--host localhost] [--port 8000]';
    case 'new':
      // New command is now handled in bin/dartian.dart with NewCommand
      return 'Use: dartian new <project-name>';
    case 'make':
      return _handleMakeCommand(commandArgs);
    case 'queue':
      if (commandArgs.isEmpty || commandArgs[0] != 'work') {
        return 'Usage: dartian queue:work [options]';
      }
      return 'Use: dartian queue:work [--queue=default] [--driver=sync]';
    case 'schedule':
      if (commandArgs.isEmpty || commandArgs[0] != 'run') {
        return 'Usage: dartian schedule:run';
      }
      return 'Use: dartian schedule:run';
    case 'build':
      if (commandArgs.isEmpty) {
        return 'Usage: dartian build <type>\nTypes: exe, aot-snapshot, wasm';
      }
      return 'Use: dartian build exe|aot-snapshot|wasm';
    case 'migrate':
      // Migrate command is now handled in bin/dartian.dart
      return 'Use: dartian migrate [--status] [--database=path]';
    case 'test':
      // Test command is now handled in bin/dartian.dart
      return 'Use: dartian test [--coverage] [--name=pattern] [files]';
    default:
      return _showHelp();
  }
}