mirror of
https://github.com/spritsail/plex-media-server.git
synced 2024-12-20 11:34:36 +00:00
f9e4de3149
* Added verbose env variables - `LOG_DEBUG` or `LOG_VERBOSE` do not change anything it they are unset (same as before) - `LOG_DEBUG` or `LOG_VERBOSE` take precedence on Plex configuration file at start when set to `0` or `1`. The user can change the Preferences once the container is started which will overwrite the environment variables.
89 lines
2.7 KiB
Bash
Executable File
89 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# ANSI colour escape sequences
|
|
RED='\033[0;31m'
|
|
CYANBOLD='\033[1;36m'
|
|
RESET='\033[0m'
|
|
|
|
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_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_DIR"
|
|
chmod o+rw "$CONFIG_DIR"
|
|
fi
|
|
|
|
export CONFIG_DIR
|
|
export PREF_FILE="$CONFIG_DIR/Preferences.xml"
|
|
|
|
exec su-exec -e sh <<EOF
|
|
|
|
source plex-util.sh
|
|
|
|
# Generate a default configuration on first run, including some user-specified values
|
|
if [ ! -e "\$PREF_FILE" ]; then
|
|
source gen-config.sh
|
|
fi
|
|
|
|
# Changes the log verbosity (Environment variable takes precedence on Plex Config)
|
|
if [ "$LOG_VERBOSE" = "1" ]; then
|
|
setPref "LogVerbose" "1"
|
|
elif [ "$LOG_VERBOSE" = "0" ]; then
|
|
setPref "LogVerbose" "0"
|
|
elif [ ! -z "$LOG_VERBOSE" ]; then
|
|
2>&1 echo -e "${RED}LOG_VERBOSE value '$LOG_VERBOSE' is invalid${RESET}"
|
|
exit 1
|
|
fi
|
|
|
|
# Changes the debug verbosity (Environment variable takes precedence on Plex Config)
|
|
if [ "$LOG_DEBUG" = "1" ]; then
|
|
setPref "logDebug" "1"
|
|
elif [ "$LOG_DEBUG" = "0" ]; then
|
|
setPref "logDebug" "0"
|
|
elif [ ! -z "$LOG_DEBUG" ]; then
|
|
2>&1 echo -e "${RED}LOG_DEBUG value '$LOG_DEBUG' is invalid${RESET}"
|
|
exit 1
|
|
fi
|
|
|
|
# Always attempt to claim an unclaimed server in case it was signed out
|
|
token="\$(getPref "PlexOnlineToken")"
|
|
if [ ! -z "\${PLEX_CLAIM}" ] && [ -z "\${token}" ]; then
|
|
claim-server.sh --load-client-id --save
|
|
fi
|
|
|
|
# Duplicate the Plex logs to stdout (docker logs)
|
|
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)"
|
|
|
|
exec "\$PLEX_MEDIA_SERVER_HOME/Plex Media Server"
|
|
|
|
EOF
|