mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
simplified _find_frozen_openpype
This commit is contained in:
parent
500339088d
commit
21b9926be4
1 changed files with 49 additions and 71 deletions
120
start.py
120
start.py
|
|
@ -196,7 +196,8 @@ from igniter import BootstrapRepos # noqa: E402
|
||||||
from igniter.tools import (
|
from igniter.tools import (
|
||||||
get_openpype_global_settings,
|
get_openpype_global_settings,
|
||||||
get_openpype_path_from_db,
|
get_openpype_path_from_db,
|
||||||
validate_mongo_connection
|
validate_mongo_connection,
|
||||||
|
OpenPypeVersionNotFound
|
||||||
) # noqa
|
) # noqa
|
||||||
from igniter.bootstrap_repos import OpenPypeVersion # noqa: E402
|
from igniter.bootstrap_repos import OpenPypeVersion # noqa: E402
|
||||||
|
|
||||||
|
|
@ -645,67 +646,60 @@ def _find_frozen_openpype(use_version: str = None,
|
||||||
(if requested).
|
(if requested).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
version_path = None
|
# Collect OpenPype versions
|
||||||
openpype_version = None
|
openpype_versions = bootstrap.find_openpype(
|
||||||
openpype_versions = bootstrap.find_openpype(include_zips=True,
|
include_zips=True,
|
||||||
staging=use_staging)
|
staging=use_staging
|
||||||
# get local frozen version and add it to detected version so if it is
|
)
|
||||||
# newer it will be used instead.
|
openpype_root = Path(os.environ["OPENPYPE_ROOT"])
|
||||||
local_version_str = bootstrap.get_version(
|
local_version_str = bootstrap.get_version(openpype_root)
|
||||||
Path(os.environ["OPENPYPE_ROOT"]))
|
studio_version = OpenPypeVersion.get_expected_studio_version(use_staging)
|
||||||
if local_version_str:
|
if local_version_str:
|
||||||
local_version = OpenPypeVersion(
|
local_version = OpenPypeVersion(
|
||||||
version=local_version_str,
|
version=local_version_str,
|
||||||
path=Path(os.environ["OPENPYPE_ROOT"]))
|
path=openpype_root
|
||||||
|
)
|
||||||
if local_version not in openpype_versions:
|
if local_version not in openpype_versions:
|
||||||
openpype_versions.append(local_version)
|
openpype_versions.append(local_version)
|
||||||
openpype_versions.sort()
|
|
||||||
# if latest is currently running, ditch whole list
|
# Find OpenPype version that should be used
|
||||||
# and run from current without installing it.
|
openpype_version = None
|
||||||
if local_version == openpype_versions[-1]:
|
if use_version is not None:
|
||||||
os.environ["OPENPYPE_TRYOUT"] = "1"
|
# Version was specified with arguments or env OPENPYPE_VERSION
|
||||||
openpype_versions = []
|
# - should crash if version is not available
|
||||||
|
_print("Finding specified version \"{}\"".format(use_version))
|
||||||
|
for version in openpype_versions:
|
||||||
|
if version == use_version:
|
||||||
|
openpype_version = version
|
||||||
|
break
|
||||||
|
|
||||||
|
if openpype_version is None:
|
||||||
|
raise OpenPypeVersionNotFound(
|
||||||
|
"Requested version \"{}\" was not found.".format(use_version)
|
||||||
|
)
|
||||||
|
|
||||||
|
elif studio_version:
|
||||||
|
_print("Finding studio version \"{}\"".format(studio_version))
|
||||||
|
# Look for version specified by settings
|
||||||
|
for version in openpype_versions:
|
||||||
|
if version == studio_version:
|
||||||
|
openpype_version = version
|
||||||
|
break
|
||||||
|
if openpype_version is None:
|
||||||
|
raise OpenPypeVersionNotFound((
|
||||||
|
"Requested OpenPype version \"{}\" defined by settings"
|
||||||
|
" was not found."
|
||||||
|
).format(use_version))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
_print("!!! Warning: cannot determine current running version.")
|
# Use latest available version
|
||||||
|
_print("Finding latest version")
|
||||||
|
openpype_versions.sort()
|
||||||
|
openpype_version = openpype_versions[-1]
|
||||||
|
|
||||||
if not os.getenv("OPENPYPE_TRYOUT"):
|
# get local frozen version and add it to detected version so if it is
|
||||||
try:
|
# newer it will be used instead.
|
||||||
# use latest one found (last in the list is latest)
|
if local_version == openpype_version:
|
||||||
openpype_version = openpype_versions[-1]
|
|
||||||
except IndexError:
|
|
||||||
# no OpenPype version found, run Igniter and ask for them.
|
|
||||||
_print('*** No OpenPype versions found.')
|
|
||||||
if os.getenv("OPENPYPE_HEADLESS_MODE") == "1":
|
|
||||||
_print("!!! Cannot open Igniter dialog in headless mode.")
|
|
||||||
sys.exit(1)
|
|
||||||
_print("--- launching setup UI ...")
|
|
||||||
import igniter
|
|
||||||
return_code = igniter.open_dialog()
|
|
||||||
if return_code == 2:
|
|
||||||
os.environ["OPENPYPE_TRYOUT"] = "1"
|
|
||||||
if return_code == 3:
|
|
||||||
# run OpenPype after installation
|
|
||||||
|
|
||||||
_print('>>> Finding OpenPype again ...')
|
|
||||||
openpype_versions = bootstrap.find_openpype(
|
|
||||||
staging=use_staging)
|
|
||||||
try:
|
|
||||||
openpype_version = openpype_versions[-1]
|
|
||||||
except IndexError:
|
|
||||||
_print(("!!! Something is wrong and we didn't "
|
|
||||||
"found it again."))
|
|
||||||
sys.exit(1)
|
|
||||||
elif return_code != 2:
|
|
||||||
_print(f" . finished ({return_code})")
|
|
||||||
sys.exit(return_code)
|
|
||||||
|
|
||||||
if not openpype_versions:
|
|
||||||
# no openpype versions found anyway, lets use then the one
|
|
||||||
# shipped with frozen OpenPype
|
|
||||||
if not os.getenv("OPENPYPE_TRYOUT"):
|
|
||||||
_print("*** Still no luck finding OpenPype.")
|
|
||||||
_print(("*** We'll try to use the one coming "
|
|
||||||
"with OpenPype installation."))
|
|
||||||
version_path = _bootstrap_from_code(use_version, use_staging)
|
version_path = _bootstrap_from_code(use_version, use_staging)
|
||||||
openpype_version = OpenPypeVersion(
|
openpype_version = OpenPypeVersion(
|
||||||
version=BootstrapRepos.get_version(version_path),
|
version=BootstrapRepos.get_version(version_path),
|
||||||
|
|
@ -713,22 +707,6 @@ def _find_frozen_openpype(use_version: str = None,
|
||||||
_initialize_environment(openpype_version)
|
_initialize_environment(openpype_version)
|
||||||
return version_path
|
return version_path
|
||||||
|
|
||||||
# get path of version specified in `--use-version`
|
|
||||||
local_version = bootstrap.get_version(OPENPYPE_ROOT)
|
|
||||||
if use_version and use_version != local_version:
|
|
||||||
# force the one user has selected
|
|
||||||
openpype_version = None
|
|
||||||
openpype_versions = bootstrap.find_openpype(include_zips=True,
|
|
||||||
staging=use_staging)
|
|
||||||
v: OpenPypeVersion
|
|
||||||
found = [v for v in openpype_versions if str(v) == use_version]
|
|
||||||
if found:
|
|
||||||
openpype_version = sorted(found)[-1]
|
|
||||||
if not openpype_version:
|
|
||||||
_print(f"!!! Requested version {use_version} was not found.")
|
|
||||||
list_versions(openpype_versions, local_version)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# test if latest detected is installed (in user data dir)
|
# test if latest detected is installed (in user data dir)
|
||||||
is_inside = False
|
is_inside = False
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue