diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2022-07-10 23:39:16 +0300 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2022-07-10 23:39:16 +0300 |
commit | d02bf7584aa9a679f9bf7d63bd5366ed354022ba (patch) | |
tree | 8a380e349aa1710d993332aeaf38581f2e878f99 /editor/editor_node.cpp | |
parent | d26442e709f6361af9ac755ec9291bb43f2cd69b (diff) |
[Command line export] return 0 exit code when export is finished with warnings.
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r-- | editor/editor_node.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 64665833df..db5310221e 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -923,6 +923,7 @@ void EditorNode::_fs_changed() { // FIXME: Move this to a cleaner location, it's hacky to do this in _fs_changed. String export_error; + Error err = OK; if (!export_defer.preset.is_empty() && !EditorFileSystem::get_singleton()->is_scanning()) { String preset_name = export_defer.preset; // Ensures export_project does not loop infinitely, because notifications may @@ -940,6 +941,7 @@ void EditorNode::_fs_changed() { if (export_preset.is_null()) { Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (da->file_exists("res://export_presets.cfg")) { + err = FAILED; export_error = vformat( "Invalid export preset name: %s.\nThe following presets were detected in this project's `export_presets.cfg`:\n\n", preset_name); @@ -948,17 +950,19 @@ void EditorNode::_fs_changed() { export_error += vformat(" \"%s\"\n", EditorExport::get_singleton()->get_export_preset(i)->get_name()); } } else { + err = FAILED; export_error = "This project doesn't have an `export_presets.cfg` file at its root.\nCreate an export preset from the \"Project > Export\" dialog and try again."; } } else { Ref<EditorExportPlatform> platform = export_preset->get_platform(); const String export_path = export_defer.path.is_empty() ? export_preset->get_export_path() : export_defer.path; if (export_path.is_empty()) { + err = FAILED; export_error = vformat("Export preset \"%s\" doesn't have a default export path, and none was specified.", preset_name); } else if (platform.is_null()) { + err = FAILED; export_error = vformat("Export preset \"%s\" doesn't have a matching platform.", preset_name); } else { - Error err = OK; if (export_defer.pack_only) { // Only export .pck or .zip data pack. if (export_path.ends_with(".zip")) { err = platform->export_zip(export_preset, export_defer.debug, export_path); @@ -979,17 +983,18 @@ void EditorNode::_fs_changed() { if (err != OK) { export_error = vformat("Project export for preset \"%s\" failed.", preset_name); } else if (platform->get_worst_message_type() >= EditorExportPlatform::EXPORT_MESSAGE_WARNING) { - export_error = vformat("Project export for preset \"%s\" completed with errors.", preset_name); + export_error = vformat("Project export for preset \"%s\" completed with warnings.", preset_name); } } } - if (!export_error.is_empty()) { + if (err != OK) { ERR_PRINT(export_error); _exit_editor(EXIT_FAILURE); - } else { - _exit_editor(EXIT_SUCCESS); + } else if (!export_error.is_empty()) { + WARN_PRINT(export_error); } + _exit_editor(EXIT_SUCCESS); } } |