diff options
| author | Derek J. Clark <derkejohn.clark@gmail.com> | 2022-08-08 11:32:14 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-08 11:32:14 -0700 |
| commit | 20094c5f752046a33287ef372fa973e919e83226 (patch) | |
| tree | ed298251be183fc5f3151b19a10f7499c7d66e0d /dist | |
| parent | 198591dbd7b0b6dd311ab9265d4cda4a733ee280 (diff) | |
| download | decky-loader-20094c5f752046a33287ef372fa973e919e83226.tar.gz decky-loader-20094c5f752046a33287ef372fa973e919e83226.zip | |
Use Environment Variables (#123)
Uses environment variables instead of hard coding the "deck" user/group.
This adds support for systems other than the steam deck that are using the DeckUI.
* Use Environment Variables
* Use method to get USER from a systemd root process
* Fix imports. Add get_user and get_user_group methods in helpers.py. Removed duplicated code
* Add separate setters/getters for user vars. Ensure sleep prevents race condition of user setter in while loop
Diffstat (limited to 'dist')
| -rw-r--r-- | dist/install_nightly.sh | 16 | ||||
| -rw-r--r--[-rwxr-xr-x] | dist/install_prerelease.sh | 7 | ||||
| -rw-r--r-- | dist/install_release.sh | 23 | ||||
| -rw-r--r-- | dist/uninstall.sh | 13 |
4 files changed, 32 insertions, 27 deletions
diff --git a/dist/install_nightly.sh b/dist/install_nightly.sh index 7fc34195..ca80cb27 100644 --- a/dist/install_nightly.sh +++ b/dist/install_nightly.sh @@ -4,12 +4,13 @@ echo "Installing Steam Deck Plugin Loader nightly..." -HOMEBREW_FOLDER=/home/deck/homebrew +USER_DIR="$(getent passwd $SUDO_USER | cut -d: -f6)" +HOMEBREW_FOLDER="${USER_DIR}/homebrew" # Create folder structure rm -rf ${HOMEBREW_FOLDER}/services -sudo -u deck mkdir -p ${HOMEBREW_FOLDER}/services -sudo -u deck mkdir -p ${HOMEBREW_FOLDER}/plugins +sudo -u $SUDO_USER mkdir -p "${HOMEBREW_FOLDER}/services" +sudo -u $SUDO_USER mkdir -p "${HOMEBREW_FOLDER}/plugins" # Download latest nightly build and install it rm -rf /tmp/plugin_loader @@ -22,7 +23,7 @@ chmod +x ${HOMEBREW_FOLDER}/services/PluginLoader systemctl --user stop plugin_loader 2> /dev/null systemctl --user disable plugin_loader 2> /dev/null -rm -f /home/deck/.config/systemd/user/plugin_loader.service +rm -f ${USER_DIR}/.config/systemd/user/plugin_loader.service systemctl stop plugin_loader 2> /dev/null systemctl disable plugin_loader 2> /dev/null @@ -37,10 +38,9 @@ Type=simple User=root Restart=always -ExecStart=/home/deck/homebrew/services/PluginLoader -WorkingDirectory=/home/deck/homebrew/services - -Environment=PLUGIN_PATH=/home/deck/homebrew/plugins +ExecStart=${HOMEBREW_FOLDER}/services/PluginLoader +WorkingDirectory=${HOMEBREW_FOLDER}/services +Environment=PLUGIN_PATH=${HOMEBREW_FOLDER}/plugins [Install] WantedBy=multi-user.target diff --git a/dist/install_prerelease.sh b/dist/install_prerelease.sh index 2bbd209e..f4916572 100755..100644 --- a/dist/install_prerelease.sh +++ b/dist/install_prerelease.sh @@ -4,12 +4,13 @@ echo "Installing Steam Deck Plugin Loader pre-release..." -HOMEBREW_FOLDER=/home/deck/homebrew +USER_DIR="$(getent passwd $SUDO_USER | cut -d: -f6)" +HOMEBREW_FOLDER="${USER_DIR}/homebrew" # # Create folder structure rm -rf ${HOMEBREW_FOLDER}/services -sudo -u deck mkdir -p ${HOMEBREW_FOLDER}/services -sudo -u deck mkdir -p ${HOMEBREW_FOLDER}/plugins +sudo -u $SUDO_USER mkdir -p "${HOMEBREW_FOLDER}/services" +sudo -u $SUDO_USER mkdir -p "${HOMEBREW_FOLDER}/plugins" # Download latest release and install it RELEASE=$(curl -s 'https://api.github.com/repos/SteamDeckHomebrew/decky-loader/releases' | jq -r "first(.[] | select(.prerelease == "true"))") diff --git a/dist/install_release.sh b/dist/install_release.sh index cd690a8b..009997ad 100644 --- a/dist/install_release.sh +++ b/dist/install_release.sh @@ -4,33 +4,34 @@ echo "Installing Steam Deck Plugin Loader release..." -HOMEBREW_FOLDER=/home/deck/homebrew +USER_DIR="$(getent passwd $SUDO_USER | cut -d: -f6)" +HOMEBREW_FOLDER="${USER_DIR}/homebrew" # Create folder structure -rm -rf ${HOMEBREW_FOLDER}/services -sudo -u deck mkdir -p ${HOMEBREW_FOLDER}/services -sudo -u deck mkdir -p ${HOMEBREW_FOLDER}/plugins +rm -rf "${HOMEBREW_FOLDER}/services" +sudo -u $SUDO_USER mkdir -p "${HOMEBREW_FOLDER}/services" +sudo -u $SUDO_USER mkdir -p "${HOMEBREW_FOLDER}/plugins" # Download latest release and install it -curl -L https://github.com/SteamDeckHomebrew/PluginLoader/releases/latest/download/PluginLoader --output ${HOMEBREW_FOLDER}/services/PluginLoader -chmod +x ${HOMEBREW_FOLDER}/services/PluginLoader +curl -L https://github.com/SteamDeckHomebrew/PluginLoader/releases/latest/download/PluginLoader --output "${HOMEBREW_FOLDER}/services/PluginLoader" +chmod +x "${HOMEBREW_FOLDER}/services/PluginLoader" systemctl --user stop plugin_loader 2> /dev/null systemctl --user disable plugin_loader 2> /dev/null systemctl stop plugin_loader 2> /dev/null systemctl disable plugin_loader 2> /dev/null -rm -f /etc/systemd/system/plugin_loader.service -cat > /etc/systemd/system/plugin_loader.service <<- EOM +rm -f "/etc/systemd/system/plugin_loader.service" +cat > "/etc/systemd/system/plugin_loader.service" <<- EOM [Unit] Description=SteamDeck Plugin Loader [Service] Type=simple User=root Restart=always -ExecStart=/home/deck/homebrew/services/PluginLoader -WorkingDirectory=/home/deck/homebrew/services -Environment=PLUGIN_PATH=/home/deck/homebrew/plugins +ExecStart=${HOMEBREW_FOLDER}/services/PluginLoader +WorkingDirectory=${HOMEBREW_FOLDER}/services +Environment=PLUGIN_PATH=${HOMEBREW_FOLDER}/plugins [Install] WantedBy=multi-user.target EOM diff --git a/dist/uninstall.sh b/dist/uninstall.sh index a98ba0de..0680338d 100644 --- a/dist/uninstall.sh +++ b/dist/uninstall.sh @@ -1,17 +1,20 @@ #!/bin/sh +[ "$UID" -eq 0 ] || exec sudo "$0" "$@" + echo "Uninstalling Steam Deck Plugin Loader..." -HOMEBREW_FOLDER=/home/deck/homebrew +USER_DIR="$(getent passwd $SUDO_USER | cut -d: -f6)" +HOMEBREW_FOLDER="${USER_DIR}/homebrew" # Disable and remove services sudo systemctl disable --now plugin_loader.service > /dev/null -sudo rm -f /home/deck/.config/systemd/user/plugin_loader.service -sudo rm -f /etc/systemd/system/plugin_loader.service +sudo rm -f "${USER_DIR}/.config/systemd/user/plugin_loader.service" +sudo rm -f "/etc/systemd/system/plugin_loader.service" # Remove temporary folder if it exists from the install process -rm -rf /tmp/plugin_loader +rm -rf "/tmp/plugin_loader" # Cleanup services folder -sudo rm ${HOMEBREW_FOLDER}/services/PluginLoader +sudo rm "${HOMEBREW_FOLDER}/services/PluginLoader" |
