feat: setup houdini image build
This commit is contained in:
34
houdini/houdini-run
Normal file
34
houdini/houdini-run
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# Start sesinetd (required for Apprentice), then launch Houdini.
|
||||
set -euo pipefail
|
||||
|
||||
HFS="${HFS:-/opt/hfs}"
|
||||
# distrobox forwards the host shell's environment into the container. On a
|
||||
# host that sets LD_LIBRARY_PATH itself (e.g. NixOS), that leaks in libs
|
||||
# built for the host's glibc, which crash Houdini's binaries at load time.
|
||||
# houdini_setup only ever *prepends* to LD_LIBRARY_PATH, so start it clean.
|
||||
unset LD_LIBRARY_PATH
|
||||
# houdini_setup isn't written for strict mode (unset vars, commands like
|
||||
# `which java` that are expected to fail silently), so relax around the source.
|
||||
_p="$PWD"; cd "${HFS}"
|
||||
set +euo pipefail; source ./houdini_setup >/dev/null; set -euo pipefail
|
||||
cd "${_p}"
|
||||
|
||||
if ! pgrep -x sesinetd >/dev/null 2>&1; then
|
||||
# sesinetd runs as www-data (dropped from root by sudo below); a license
|
||||
# file bind-mounted from the host belongs to the host user instead and
|
||||
# isn't writable by www-data, which makes activation silently fail
|
||||
# ("Failed to open license file" in /var/log/sidefx/sesinetd.log, visible
|
||||
# in the GUI as an unrelated-looking "Success (curl error 0)" error).
|
||||
sudo chmod 666 /usr/lib/sesi/licenses 2>/dev/null || true
|
||||
# If self-signed cert generation ever gets interrupted, it leaves 0-byte
|
||||
# cert/key files behind; sesinetd then spins at ~100% CPU retrying
|
||||
# against them forever instead of regenerating. Clear those out first.
|
||||
for f in /usr/lib/sesi/ssl/auth.cert /usr/lib/sesi/ssl/auth.priv; do
|
||||
[ -e "$f" ] && [ ! -s "$f" ] && sudo rm -f "$f"
|
||||
done
|
||||
sudo /usr/lib/sesi/sesinetd >/dev/null 2>&1 &
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
exec "${@:-houdinifx}"
|
||||
Reference in New Issue
Block a user