# vim: set ft=make :
# Setup and configure Sunshine Game Streaming host. Options: status | enable | enable-beta | update | disable | uninstall | portal
[group("gaming")]
setup-sunshine ACTION="":
#!/usr/bin/bash
source /usr/lib/ujust/ujust.sh
OPTION={{ ACTION }}
confirm() {
local msg="$1"
echo -n "$msg ${yellow}(Y/n)${normal} "
read -r reply
[[ -z "$reply" || "${reply,,}" =~ ^y ]]
}
sunshine_installed() {
[[ -e /home/linuxbrew/.linuxbrew/opt/sunshine ||
-d /home/linuxbrew/.linuxbrew/Cellar/sunshine ||
-e /home/linuxbrew/.linuxbrew/opt/sunshine-beta ||
-d /home/linuxbrew/.linuxbrew/Cellar/sunshine-beta ]]
}
get_status_token() {
local beta_service_state service_state
beta_service_state="$(systemctl is-enabled --user homebrew.sunshine-beta.service 2>/dev/null || true)"
service_state="$(systemctl is-enabled --user homebrew.sunshine.service 2>/dev/null || true)"
if [[ "$beta_service_state" == "enabled" ]]; then
echo "enable-beta"
elif [[ "$service_state" == "enabled" ]]; then
echo "enable"
elif sunshine_installed; then
echo "disable"
else
echo "uninstall"
fi
}
override_service() {
servicefile="[Unit]
After=graphical-session.target xdg-desktop-autostart.target xdg-desktop-portal.service
[Service]
ExecStartPre=/bin/sleep 5
Restart=on-failure
RestartSec=5s
"
if [[ $(systemctl --user cat homebrew.sunshine-beta | grep sleep 2>/dev/null || true) == "" || $(systemctl --user cat homebrew.sunshine-beta | grep sleep 2>/dev/null || true) == "" ]]; then
if [[ "$(get_status_token)" == "enable" ]]; then
systemctl --user edit --stdin homebrew.sunshine <<< "$servicefile"
elif [[ "$(get_status_token)" == "enable-beta" ]]; then
systemctl --user edit --stdin homebrew.sunshine-beta <<< "$servicefile"
fi
fi
}
if [ "$OPTION" == "help" ]; then
echo "Usage: ujust setup-sunshine