# 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