hhacks/houy.py
2019-06-21 18:44:43 +02:00

58 lines
2.0 KiB
Python
Executable File

#!/usr/bin/python3
from subprocess import call
from sys import argv, platform, exit, stderr
from os import environ, getenv, chdir
import shlex
import subprocess
if __name__ == '__main__':
r = {environ.get('PATH')}
setup_path = getenv('HFS')
if not setup_path:
# Use static paths
setup = {
'darwin': '/Applications/Houdini/Houdini17.5.173/Frameworks/Houdini.framework/Versions/Current/Resources',
'linux': '/opt/hfs17.5.229',
'win32': r'C:\Program Files\Side Effects Software\Houdini 17.5.173'
}
if platform not in setup.keys():
print('Platform `{}` not supported... yet.'.format(platform), file=stderr)
exit(1)
setup_path = setup[platform]
chdir(setup_path)
if platform == 'win32':
if '-rs3' in argv:
redshift_path = 'C:/ProgramData/Redshift3'
else:
redshift_path = 'C:/ProgramData/Redshift'
else:
if '-rs3' in argv:
redshift_path = '/opt/redshift3'
else:
redshift_path = '/opt/redshift'
environ.update({
'HOUDINI_NO_SPLASH': '1',
'HOUDINI_DSO_ERROR': '2',
'PATH': ';'.join(['{}/bin'.format(redshift_path),
environ.get('PATH')]),
'REDSHIFT_COREDATAPATH': redshift_path,
'HOUDINI_OCL_DEVICETYPE': 'GPU',
'HOUDINI_OCL_DEVICENUMBER': '0',
'HOUDINI_PATH': "{}/Plugins/Houdini/17.5.173;&".format(redshift_path),
})
# Initialize env vars.
if platform != 'win32':
command = shlex.split("env -i sh -c '. houdini_setup >/dev/null && env'")
proc = subprocess.Popen(command, stdout=subprocess.PIPE,
universal_newlines=True)
for line in proc.stdout:
(key, _, value) = str(line.strip()).partition('=')
environ[key] = value
print(key, '=', value)
proc.communicate()
call(['./bin/houdini'], env=environ)