mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
action_app renamed to application loader
This commit is contained in:
parent
4854431897
commit
18429e0380
1 changed files with 0 additions and 0 deletions
64
pype/ftrack/actions/action_application_loader.py
Normal file
64
pype/ftrack/actions/action_application_loader.py
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
import toml
|
||||
import time
|
||||
from pype.ftrack import AppAction
|
||||
from avalon import lib
|
||||
from app.api import Logger
|
||||
from pype import lib as pypelib
|
||||
|
||||
log = Logger.getLogger(__name__)
|
||||
|
||||
|
||||
def registerApp(app, session):
|
||||
name = app['name']
|
||||
variant = ""
|
||||
try:
|
||||
variant = app['name'].split("_")[1]
|
||||
except Exception:
|
||||
log.warning((
|
||||
'"{0}" - App "name" and "variant" is not separated by "_"'
|
||||
' (variant is not set)'
|
||||
).format(app['name']))
|
||||
return
|
||||
|
||||
abspath = lib.which_app(app['name'])
|
||||
if abspath is None:
|
||||
log.error(
|
||||
"'{0}' - App don't have config toml file".format(app['name'])
|
||||
)
|
||||
return
|
||||
|
||||
apptoml = toml.load(abspath)
|
||||
|
||||
''' REQUIRED '''
|
||||
executable = apptoml['executable']
|
||||
|
||||
''' OPTIONAL '''
|
||||
label = apptoml.get('ftrack_label', app.get('label', name))
|
||||
icon = apptoml.get('ftrack_icon', None)
|
||||
description = apptoml.get('description', None)
|
||||
|
||||
# register action
|
||||
AppAction(
|
||||
session, label, name, executable, variant, icon, description
|
||||
).register()
|
||||
|
||||
|
||||
def register(session):
|
||||
projects = pypelib.get_all_avalon_projects()
|
||||
|
||||
apps = []
|
||||
appNames = []
|
||||
# Get all application from all projects
|
||||
for project in projects:
|
||||
for app in project['config']['apps']:
|
||||
if app['name'] not in appNames:
|
||||
appNames.append(app['name'])
|
||||
apps.append(app)
|
||||
|
||||
apps = sorted(apps, key=lambda x: x['name'])
|
||||
for app in apps:
|
||||
try:
|
||||
registerApp(app, session)
|
||||
time.sleep(0.05)
|
||||
except Exception as e:
|
||||
log.warning("'{0}' - not proper App ({1})".format(app['name'], e))
|
||||
Loading…
Add table
Add a link
Reference in a new issue