| 528 | namespace OpenRCT2 |
| 529 | { |
| 530 | CommandLine::ExitCode CommandLineRun(const char** argv, int32_t argc) |
| 531 | { |
| 532 | auto argEnumerator = CommandLineArgEnumerator(argv, argc); |
| 533 | |
| 534 | // Pop process path |
| 535 | argEnumerator.TryPop(); |
| 536 | |
| 537 | const CommandLineCommand* command = CommandLine::FindCommandFor(CommandLine::kRootCommands, &argEnumerator); |
| 538 | |
| 539 | if (command == nullptr) |
| 540 | { |
| 541 | return CommandLine::ExitCode::fail; |
| 542 | } |
| 543 | |
| 544 | if (command->Options != nullptr) |
| 545 | { |
| 546 | auto argEnumeratorForOptions = CommandLineArgEnumerator(argEnumerator); |
| 547 | if (!CommandLine::ParseOptions(command->Options, &argEnumeratorForOptions)) |
| 548 | { |
| 549 | return CommandLine::ExitCode::fail; |
| 550 | } |
| 551 | } |
| 552 | |
| 553 | if (command == CommandLine::kRootCommands && command->Func == nullptr) |
| 554 | { |
| 555 | return CommandLine::HandleCommandDefault(); |
| 556 | } |
| 557 | |
| 558 | return command->Func(&argEnumerator); |
| 559 | } |
| 560 | } // namespace OpenRCT2 |
no test coverage detected