From db614dea52d06367e35073989425beda4c88a8ee Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Mon, 20 Aug 2018 11:41:01 +0100 Subject: [PATCH] Add back-compat for old config mountpoint --- entrypoint | 39 ++++++++++++++++++++++++++++++++------- gen-config.sh | 5 +++-- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/entrypoint b/entrypoint index 781810d..7f83c77 100755 --- a/entrypoint +++ b/entrypoint @@ -3,29 +3,54 @@ set -e # ANSI colour escape sequences RED='\033[0;31m' +CYANBOLD='\033[1;36m' RESET='\033[0m' -if su-exec -e [ ! -w "/config" ]; then +CONFIG_DIR="/config" +OLD_CONFIG="/config/Plex Media Server" + +if [ -d "$OLD_CONFIG" ] && mountpoint -q "$OLD_CONFIG"; then + rm -rf /var/lib/plexmediaserver + ln -sf "$CONFIG_DIR" /var/lib/plexmediaserver + + 2>&1 echo -e "${RED}####################### NOTICE #######################${RESET}" + 2>&1 echo + 2>&1 echo -e "${RED} The config mountpoint has changed!${RESET}" + 2>&1 echo -e "${RED} Please change the volume as follows:${RESET}" + 2>&1 echo + 2>&1 echo -e "${CYANBOLD} '$OLD_CONFIG'${RESET} -> ${CYANBOLD}'$CONFIG_DIR'${RESET}" + 2>&1 echo + 2>&1 echo -e "${RED}######################################################${RESET}" + 2>&1 echo + + CONFIG_DIR="$OLD_CONFIG" +fi + +if su-exec -e [ ! -w "$CONFIG_DIR" ]; then 2>&1 echo -e "${RED}####################### WARNING #######################${RESET}" 2>&1 echo - 2>&1 echo -e "${RED} No permission to write in '/config' directory.${RESET}" + 2>&1 echo -e "${RED} No permission to write in '$CONFIG_DIR' directory.${RESET}" 2>&1 echo -e "${RED} Correcting permissions to prevent a crash.${RESET}" 2>&1 echo 2>&1 echo -e "${RED}#######################################################${RESET}" + 2>&1 echo - chown $SUID:$SGID /config - chmod o+rw /config + chown $SUID:$SGID "$CONFIG_DIR" + chmod o+rw "$CONFIG_DIR" fi +export CONFIG_DIR +export PREF_FILE="$CONFIG_DIR/Preferences.xml" + exec su-exec -e sh </dev/null & +tail -Fn 0 "\$CONFIG_DIR/Logs/Plex Media Server.log" 2>/dev/null & # Use a random pidfile export PLEX_MEDIA_SERVER_PIDFILE="\$(mktemp -ut pms-pid.XXXXXX)" diff --git a/gen-config.sh b/gen-config.sh index 48046ae..86adfd8 100755 --- a/gen-config.sh +++ b/gen-config.sh @@ -1,7 +1,8 @@ #!/bin/sh set -e -PREF_FILE="${1:-/config/Preferences.xml}" +CONFIG_DIR="${CONFIG_DIR:-/config}" +PREF_FILE="${PREF_FILE:-"$CONFIG_DIR/Preferences.xml"}" getPref() { xmlstarlet sel -T -t -m "/Preferences" -v "@$1" -n "${PREF_FILE}" @@ -16,7 +17,7 @@ setPref() { } # Create a default config file allowing external access -echo -e $'\n' > "/config/Preferences.xml" +echo -e $'\n' > "${PREF_FILE}" # Enforced defaults. These can be changed manually afterwards. setPref "AcceptedEULA" "1"