mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +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):
|
||||
@@ -10,12 +16,22 @@ class AERender(BaseRenderEngine):
|
||||
try:
|
||||
render_path = self.renderer_path()
|
||||
if render_path:
|
||||
ver_out = subprocess.check_output([render_path, '-version'], timeout=SUBPROCESS_TIMEOUT)
|
||||
version = ver_out.decode('utf-8').split(" ")[-1].strip()
|
||||
ver_out = subprocess.run([render_path, '-version'], capture_output=True, text=True)
|
||||
version = ver_out.stdout.split(" ")[-1].strip()
|
||||
except Exception as e:
|
||||
logger.error(f'Failed to get {self.name()} version: {e}')
|
||||
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
|
||||
def get_output_formats(cls):
|
||||
# todo: create implementation
|
||||
|
||||
@@ -14,7 +14,7 @@ class BaseRenderEngine(object):
|
||||
def __init__(self, custom_path=None):
|
||||
self.custom_renderer_path = custom_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):
|
||||
logger.warning(f"Path is not executable. Setting permissions to 755 for {self.renderer_path()}")
|
||||
|
||||
Reference in New Issue
Block a user