Merge pull request #95005 from jsjtxietian/export-proj

Fix crash or unclear messages when exporting with invalid arguments
This commit is contained in:
Rémi Verschelde 2024-09-05 17:44:07 +02:00
commit d8e2a2b860
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -3548,13 +3548,16 @@ int Main::start() {
gdscript_docs_path = E->next()->get(); gdscript_docs_path = E->next()->get();
#endif #endif
} else if (E->get() == "--export-release") { } else if (E->get() == "--export-release") {
ERR_FAIL_COND_V_MSG(!editor && !found_project, EXIT_FAILURE, "Please provide a valid project path when exporting, aborting.");
editor = true; //needs editor editor = true; //needs editor
_export_preset = E->next()->get(); _export_preset = E->next()->get();
} else if (E->get() == "--export-debug") { } else if (E->get() == "--export-debug") {
ERR_FAIL_COND_V_MSG(!editor && !found_project, EXIT_FAILURE, "Please provide a valid project path when exporting, aborting.");
editor = true; //needs editor editor = true; //needs editor
_export_preset = E->next()->get(); _export_preset = E->next()->get();
export_debug = true; export_debug = true;
} else if (E->get() == "--export-pack") { } else if (E->get() == "--export-pack") {
ERR_FAIL_COND_V_MSG(!editor && !found_project, EXIT_FAILURE, "Please provide a valid project path when exporting, aborting.");
editor = true; editor = true;
_export_preset = E->next()->get(); _export_preset = E->next()->get();
export_pack_only = true; export_pack_only = true;
@ -3566,6 +3569,8 @@ int Main::start() {
if (parsed_pair) { if (parsed_pair) {
E = E->next(); E = E->next();
} }
} else if (E->get().begins_with("--export-")) {
ERR_FAIL_V_MSG(EXIT_FAILURE, "Missing export preset name, aborting.");
} }
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
// Handle case where no path is given to --doctool. // Handle case where no path is given to --doctool.
@ -4409,7 +4414,7 @@ bool Main::iteration() {
} }
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
if (wait_for_import && EditorFileSystem::get_singleton()->doing_first_scan()) { if (wait_for_import && EditorFileSystem::get_singleton() && EditorFileSystem::get_singleton()->doing_first_scan()) {
exit = false; exit = false;
} }
#endif #endif