mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-27 14:22:37 +01:00
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
import os
|
|
|
|
from avalon import api, lib
|
|
|
|
|
|
class VrayRenderSlave(api.Action):
|
|
|
|
name = "vrayrenderslave"
|
|
label = "V-Ray Slave"
|
|
icon = "object-group"
|
|
order = 996
|
|
|
|
def is_compatible(self, session):
|
|
"""Return whether the action is compatible with the session"""
|
|
if "AVALON_PROJECT" in session:
|
|
return False
|
|
return True
|
|
|
|
def process(self, session, **kwargs):
|
|
"""Implement the behavior for when the action is triggered
|
|
|
|
Args:
|
|
session (dict): environment dictionary
|
|
|
|
Returns:
|
|
Popen instance of newly spawned process
|
|
|
|
"""
|
|
|
|
# Update environment with session
|
|
env = os.environ.copy()
|
|
env.update(session)
|
|
|
|
# Get executable by name
|
|
app = lib.get_application(self.name)
|
|
env.update(app["environment"])
|
|
executable = lib.which(app["executable"])
|
|
|
|
# Run as server
|
|
arguments = ["-server", "-portNumber=20207"]
|
|
|
|
return lib.launch(executable=executable,
|
|
args=arguments,
|
|
environment=env)
|