mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
70 lines
1.6 KiB
Python
70 lines
1.6 KiB
Python
import os
|
|
import sys
|
|
import contextlib
|
|
import traceback
|
|
import logging
|
|
|
|
from Qt import QtWidgets
|
|
|
|
from openpype.pipeline import install_host
|
|
from openpype.lib.remote_publish import headless_publish
|
|
|
|
from openpype.tools.utils import host_tools
|
|
from .launch_logic import ProcessLauncher, get_stub
|
|
|
|
log = logging.getLogger(__name__)
|
|
log.setLevel(logging.DEBUG)
|
|
|
|
|
|
def safe_excepthook(*args):
|
|
traceback.print_exception(*args)
|
|
|
|
|
|
def main(*subprocess_args):
|
|
sys.excepthook = safe_excepthook
|
|
|
|
from openpype.hosts.aftereffects import api
|
|
|
|
install_host(api)
|
|
|
|
os.environ["OPENPYPE_LOG_NO_COLORS"] = "False"
|
|
app = QtWidgets.QApplication([])
|
|
app.setQuitOnLastWindowClosed(False)
|
|
|
|
launcher = ProcessLauncher(subprocess_args)
|
|
launcher.start()
|
|
|
|
if os.environ.get("HEADLESS_PUBLISH"):
|
|
launcher.execute_in_main_thread(lambda: headless_publish(
|
|
log,
|
|
"CloseAE",
|
|
os.environ.get("IS_TEST")))
|
|
elif os.environ.get("AVALON_PHOTOSHOP_WORKFILES_ON_LAUNCH", True):
|
|
save = False
|
|
if os.getenv("WORKFILES_SAVE_AS"):
|
|
save = True
|
|
|
|
launcher.execute_in_main_thread(
|
|
lambda: host_tools.show_tool_by_name("workfiles", save=save)
|
|
)
|
|
|
|
sys.exit(app.exec_())
|
|
|
|
|
|
@contextlib.contextmanager
|
|
def maintained_selection():
|
|
"""Maintain selection during context."""
|
|
selection = get_stub().get_selected_items(True, False, False)
|
|
try:
|
|
yield selection
|
|
finally:
|
|
pass
|
|
|
|
|
|
def get_extension_manifest_path():
|
|
return os.path.join(
|
|
os.path.dirname(os.path.abspath(__file__)),
|
|
"extension",
|
|
"CSXS",
|
|
"manifest.xml"
|
|
)
|