Merge pull request #3136 from pypeclub/bugfix/missing_variable_fix

General: Missing version on headless mode crash properly
This commit is contained in:
Jakub Trllo 2022-05-05 12:19:34 +02:00 committed by GitHub
commit 4ffccc8ecf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

105
start.py
View file

@ -897,6 +897,56 @@ def _bootstrap_from_code(use_version, use_staging):
return version_path
def _boot_validate_versions(use_version, local_version):
_print(f">>> Validating version [ {use_version} ]")
openpype_versions = bootstrap.find_openpype(include_zips=True,
staging=True)
openpype_versions += bootstrap.find_openpype(include_zips=True,
staging=False)
v: OpenPypeVersion
found = [v for v in openpype_versions if str(v) == use_version]
if not found:
_print(f"!!! Version [ {use_version} ] not found.")
list_versions(openpype_versions, local_version)
sys.exit(1)
# print result
version_path = bootstrap.get_version_path_from_list(
use_version, openpype_versions
)
valid, message = bootstrap.validate_openpype_version(version_path)
_print("{}{}".format(">>> " if valid else "!!! ", message))
def _boot_print_versions(use_staging, local_version, openpype_root):
if not use_staging:
_print("--- This will list only non-staging versions detected.")
_print(" To see staging versions, use --use-staging argument.")
else:
_print("--- This will list only staging versions detected.")
_print(" To see other version, omit --use-staging argument.")
openpype_versions = bootstrap.find_openpype(include_zips=True,
staging=use_staging)
if getattr(sys, 'frozen', False):
local_version = bootstrap.get_version(Path(openpype_root))
else:
local_version = OpenPypeVersion.get_installed_version_str()
list_versions(openpype_versions, local_version)
def _boot_handle_missing_version(local_version, use_staging, message):
_print(message)
if os.environ.get("OPENPYPE_HEADLESS_MODE") == "1":
openpype_versions = bootstrap.find_openpype(
include_zips=True, staging=use_staging
)
list_versions(openpype_versions, local_version)
else:
igniter.show_message_dialog("Version not found", message)
def boot():
"""Bootstrap OpenPype."""
@ -966,30 +1016,7 @@ def boot():
local_version = OpenPypeVersion.get_installed_version_str()
if "validate" in commands:
_print(f">>> Validating version [ {use_version} ]")
openpype_versions = bootstrap.find_openpype(include_zips=True,
staging=True)
openpype_versions += bootstrap.find_openpype(include_zips=True,
staging=False)
v: OpenPypeVersion
found = [v for v in openpype_versions if str(v) == use_version]
if not found:
_print(f"!!! Version [ {use_version} ] not found.")
list_versions(openpype_versions, local_version)
sys.exit(1)
# print result
result = bootstrap.validate_openpype_version(
bootstrap.get_version_path_from_list(
use_version, openpype_versions))
_print("{}{}".format(
">>> " if result[0] else "!!! ",
bootstrap.validate_openpype_version(
bootstrap.get_version_path_from_list(
use_version, openpype_versions)
)[1])
)
_boot_validate_versions(use_version, local_version)
sys.exit(1)
if not openpype_path:
@ -999,21 +1026,7 @@ def boot():
os.environ["OPENPYPE_PATH"] = openpype_path
if "print_versions" in commands:
if not use_staging:
_print("--- This will list only non-staging versions detected.")
_print(" To see staging versions, use --use-staging argument.")
else:
_print("--- This will list only staging versions detected.")
_print(" To see other version, omit --use-staging argument.")
_openpype_root = OPENPYPE_ROOT
openpype_versions = bootstrap.find_openpype(include_zips=True,
staging=use_staging)
if getattr(sys, 'frozen', False):
local_version = bootstrap.get_version(Path(_openpype_root))
else:
local_version = OpenPypeVersion.get_installed_version_str()
list_versions(openpype_versions, local_version)
_boot_print_versions(use_staging, local_version, OPENPYPE_ROOT)
sys.exit(1)
# ------------------------------------------------------------------------
@ -1026,12 +1039,7 @@ def boot():
try:
version_path = _find_frozen_openpype(use_version, use_staging)
except OpenPypeVersionNotFound as exc:
message = str(exc)
_print(message)
if os.environ.get("OPENPYPE_HEADLESS_MODE") == "1":
list_versions(openpype_versions, local_version)
else:
igniter.show_message_dialog("Version not found", message)
_boot_handle_missing_version(local_version, use_staging, str(exc))
sys.exit(1)
except RuntimeError as e:
@ -1050,12 +1058,7 @@ def boot():
version_path = _bootstrap_from_code(use_version, use_staging)
except OpenPypeVersionNotFound as exc:
message = str(exc)
_print(message)
if os.environ.get("OPENPYPE_HEADLESS_MODE") == "1":
list_versions(openpype_versions, local_version)
else:
igniter.show_message_dialog("Version not found", message)
_boot_handle_missing_version(local_version, use_staging, str(exc))
sys.exit(1)
# set this to point either to `python` from venv in case of live code