Command line arguments '--version' and '--help' return exit code 0 instead of 255

Allows to detect whether those commands executed successfully, which makes integration with shell scripts/CI/bindings straightforward.
This commit is contained in:
Jan Haller 2022-06-30 13:55:15 +02:00
parent fd3970f762
commit e3a8edf536
1 changed files with 6 additions and 1 deletions

View File

@ -673,6 +673,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
packed_data->add_pack_source(zip_packed_data); packed_data->add_pack_source(zip_packed_data);
#endif #endif
// Default exit code, can be modified for certain errors.
Error exit_code = ERR_INVALID_PARAMETER;
I = args.front(); I = args.front();
while (I) { while (I) {
#ifdef OSX_ENABLED #ifdef OSX_ENABLED
@ -688,10 +691,12 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
if (I->get() == "-h" || I->get() == "--help" || I->get() == "/?") { // display help if (I->get() == "-h" || I->get() == "--help" || I->get() == "/?") { // display help
show_help = true; show_help = true;
exit_code = OK;
goto error; goto error;
} else if (I->get() == "--version") { } else if (I->get() == "--version") {
print_line(get_full_version_string()); print_line(get_full_version_string());
exit_code = OK;
goto error; goto error;
} else if (I->get() == "-v" || I->get() == "--verbose") { // verbose output } else if (I->get() == "-v" || I->get() == "--verbose") { // verbose output
@ -1636,7 +1641,7 @@ error:
OS::get_singleton()->finalize_core(); OS::get_singleton()->finalize_core();
locale = String(); locale = String();
return ERR_INVALID_PARAMETER; return exit_code;
} }
Error Main::setup2(Thread::ID p_main_tid_override) { Error Main::setup2(Thread::ID p_main_tid_override) {