mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Fix getting path to After Effects
This commit is contained in:
@@ -1,4 +1,10 @@
|
|||||||
from src.engines.core.base_engine import BaseRenderEngine
|
import glob
|
||||||
|
import logging
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from src.engines.core.base_engine import BaseRenderEngine, SUBPROCESS_TIMEOUT
|
||||||
|
|
||||||
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class AERender(BaseRenderEngine):
|
class AERender(BaseRenderEngine):
|
||||||
@@ -10,12 +16,22 @@ class AERender(BaseRenderEngine):
|
|||||||
try:
|
try:
|
||||||
render_path = self.renderer_path()
|
render_path = self.renderer_path()
|
||||||
if render_path:
|
if render_path:
|
||||||
ver_out = subprocess.check_output([render_path, '-version'], timeout=SUBPROCESS_TIMEOUT)
|
ver_out = subprocess.run([render_path, '-version'], capture_output=True, text=True)
|
||||||
version = ver_out.decode('utf-8').split(" ")[-1].strip()
|
version = ver_out.stdout.split(" ")[-1].strip()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'Failed to get {self.name()} version: {e}')
|
logger.error(f'Failed to get {self.name()} version: {e}')
|
||||||
return version
|
return version
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_renderer_path(cls):
|
||||||
|
paths = glob.glob('/Applications/*After Effects*/aerender')
|
||||||
|
if len(paths) > 1:
|
||||||
|
logger.warning('Multiple After Effects installations detected')
|
||||||
|
elif not paths:
|
||||||
|
logger.error('After Effects installation not found')
|
||||||
|
else:
|
||||||
|
return paths[0]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_output_formats(cls):
|
def get_output_formats(cls):
|
||||||
# todo: create implementation
|
# todo: create implementation
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class BaseRenderEngine(object):
|
|||||||
def __init__(self, custom_path=None):
|
def __init__(self, custom_path=None):
|
||||||
self.custom_renderer_path = custom_path
|
self.custom_renderer_path = custom_path
|
||||||
if not self.renderer_path() or not os.path.exists(self.renderer_path()):
|
if not self.renderer_path() or not os.path.exists(self.renderer_path()):
|
||||||
raise FileNotFoundError(f"Cannot find path to renderer for {self.name()} instance")
|
raise FileNotFoundError(f"Cannot find path ({self.renderer_path()}) for renderer '{self.name()}'")
|
||||||
|
|
||||||
if not os.access(self.renderer_path(), os.X_OK):
|
if not os.access(self.renderer_path(), os.X_OK):
|
||||||
logger.warning(f"Path is not executable. Setting permissions to 755 for {self.renderer_path()}")
|
logger.warning(f"Path is not executable. Setting permissions to 755 for {self.renderer_path()}")
|
||||||
|
|||||||
Reference in New Issue
Block a user