57 lines
1.7 KiB
Bash
Executable File
57 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
###
|
|
# File: start-sunshine.sh
|
|
# Project: bin
|
|
# File Created: Tuesday, 4th October 2022 8:22:17 pm
|
|
# Author: Josh.5 (jsunnex@gmail.com)
|
|
# -----
|
|
# Last Modified: Tuesday, 4th October 2022 8:22:17 pm
|
|
# Modified By: Josh.5 (jsunnex@gmail.com)
|
|
###
|
|
set -e
|
|
source /usr/bin/common-functions.sh
|
|
|
|
# CATCH TERM SIGNAL:
|
|
_term() {
|
|
kill -TERM "$sunshine_pid" 2>/dev/null
|
|
}
|
|
trap _term SIGTERM SIGINT
|
|
|
|
|
|
# CONFIGURE:
|
|
# Install default configurations
|
|
mkdir -p /home/${USER}/sunshine
|
|
if [[ ! -f /home/${USER}/sunshine/sunshine.conf ]]; then
|
|
cp -vf /templates/sunshine/* /home/${USER}/sunshine/
|
|
# TODO: Set the default encoder '# encoder = nvenc'
|
|
# nvidia_gpu_id=$(get_nvidia_gpu_id)
|
|
# if [[ "X${nvidia_gpu_id:-}" != "X" ]]; then
|
|
# if [[ "all video" == *"${NVIDIA_DRIVER_CAPABILITIES}"* ]]; then
|
|
# # Check if we have a nvidia GPU available
|
|
# sed -i 's|^# encoder.*=.*$|encoder = nvenc|' /home/${USER}/sunshine/sunshine.conf
|
|
# fi
|
|
# else
|
|
# # TODO: Enable the vaapi device if not using nvenc
|
|
# # vainfo --display drm --device /dev/dri/renderD128 2> /dev/null | grep -E "((VAProfileH264High|VAProfileHEVCMain|VAProfileHEVCMain10).*VAEntrypointEncSlice)"
|
|
# # Loop over any render devices
|
|
# echo
|
|
# fi
|
|
fi
|
|
|
|
# Reset the default username/password
|
|
if ([ "X${SUNSHINE_USER:-}" != "X" ] && [ "X${SUNSHINE_PASS:-}" != "X" ]); then
|
|
sunshine /home/${USER}/sunshine/sunshine.conf --creds ${SUNSHINE_USER:-} ${SUNSHINE_PASS:-}
|
|
fi
|
|
|
|
|
|
# EXECUTE PROCESS:
|
|
# Wait for the X server to start
|
|
wait_for_x
|
|
# Start the sunshine server
|
|
sunshine /home/${USER}/sunshine/sunshine.conf &
|
|
sunshine_pid=$!
|
|
|
|
|
|
# WAIT FOR CHILD PROCESS:
|
|
wait "$sunshine_pid"
|