Add a plugins executor

This commit is contained in:
Josh.5
2023-02-06 00:02:30 +00:00
parent 651e9d2f25
commit dd5cfcd69e
4 changed files with 92 additions and 1 deletions

View File

@@ -574,7 +574,7 @@ ENV \
ENABLE_VNC_AUDIO="true" \
NEKO_PASSWORD=neko \
NEKO_PASSWORD_ADMIN=admin \
ENABLE_SUNSHINE="false" \
ENABLED_PLUGINS="" \
ENABLE_EVDEV_INPUTS="false"
# Configure required ports

View File

@@ -0,0 +1,16 @@
echo "**** Configure Plugins ****"
if ([ "${MODE}" != "s" ] && [ "${MODE}" != "secondary" ]); then
if [ "X${ENABLED_PLUGINS:-}" != "X" ]; then
echo "Enable Plugins"
sed -i 's|^autostart.*=.*$|autostart=true|' /etc/supervisor.d/plugins.ini
chmod +x /usr/bin/start-plugins.sh
else
echo "Disable Plugins"
fi
else
echo "Plugins not available when container is run in 'secondary' mode"
fi
echo "DONE"

View File

@@ -0,0 +1,16 @@
[program:plugins]
priority=50
autostart=false
autorestart=false
user=%(ENV_USER)s
directory=/home/%(ENV_USER)s
command=/usr/bin/start-plugins.sh
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s"
stopsignal=INT
stdout_logfile=/home/%(ENV_USER)s/.cache/log/plugins.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=7
stderr_logfile=/home/%(ENV_USER)s/.cache/log/plugins.err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=7

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
###
# File: start-plugins.sh
# Project: bin
# File Created: Sunday, 5th February 2023 10:07:02 pm
# Author: Josh.5 (jsunnex@gmail.com)
# -----
# Last Modified: Sunday, 5th February 2023 11:55:11 pm
# Modified By: Josh.5 (jsunnex@gmail.com)
###
set -e
source /usr/bin/common-functions.sh
# CATCH TERM SIGNAL:
_term() {
kill -TERM "$plugins_pid" 2>/dev/null
}
trap _term SIGTERM SIGINT
echo "USER: $USER"
echo "HOME: $HOME"
echo "ENABLED_PLUGINS: $ENABLED_PLUGINS"
# CONFIGURE:
# Set the plugins project directory
plugins_dir="/home/${USER}/.local/share/steam-headless-plugins2"
# Clone plugins project
mkdir -p "/home/${USER}/.local/share"
if [[ ! -d "${plugins_dir}" ]]; then
git clone --depth=1 \
https://github.com/Steam-Headless/plugins.git \
"${plugins_dir}"
fi
# Pull latest project
pushd "${plugins_dir}" &> /dev/null || exit 1
git clean -fdx
git checkout . 2> /dev/null
git checkout master 2> /dev/null
git pull origin master 2> /dev/null
popd &> /dev/null || exit 1
# EXECUTE PROCESS:
# Wait for the X server to start
wait_for_docker
pushd "${plugins_dir}" &> /dev/null || exit 1
## # Pull latest Docker images
## ${plugins_dir}/plugins-run pull
## # Run docker images (not in background)
## ${plugins_dir}/plugins-run up &
sleep 300
plugins_pid=$!
popd &> /dev/null || exit 1
# WAIT FOR CHILD PROCESS:
wait "$plugins_pid"