Fix getting path to After Effects

This commit is contained in:
Brett Williams
2024-08-03 20:00:36 -05:00
parent 82613c3963
commit ebb847b09e
2 changed files with 20 additions and 4 deletions

View File

@@ -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

View File

@@ -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()}")