|
@@ -1,64 +0,0 @@
|
|
|
-#!/usr/bin/with-contenv bash
|
|
|
-
|
|
|
-# This file is based off of the official 40-plex-first-run
|
|
|
-# Here: https://github.com/plexinc/pms-docker/blob/master/root/etc/cont-init.d/40-plex-first-run
|
|
|
-# It should live in /etc/cont-init.d/
|
|
|
-
|
|
|
-# If we are debugging, enable trace
|
|
|
-if [ "${DEBUG,,}" = "true" ]; then
|
|
|
- set -x
|
|
|
-fi
|
|
|
-
|
|
|
-function getPref {
|
|
|
- local key="$1"
|
|
|
-
|
|
|
- xmlstarlet sel -T -t -m "/Preferences" -v "@${key}" -n "${prefFile}"
|
|
|
-}
|
|
|
-
|
|
|
-function setPref {
|
|
|
- local key="$1"
|
|
|
- local value="$2"
|
|
|
-
|
|
|
- count="$(xmlstarlet sel -t -v "count(/Preferences/@${key})" "${prefFile}")"
|
|
|
- count=$(($count + 0))
|
|
|
- if [[ $count > 0 ]]; then
|
|
|
- xmlstarlet ed --inplace --update "/Preferences/@${key}" -v "${value}" "${prefFile}"
|
|
|
- else
|
|
|
- xmlstarlet ed --inplace --insert "/Preferences" --type attr -n "${key}" -v "${value}" "${prefFile}"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-home="$(echo ~plex)"
|
|
|
-pmsApplicationSupportDir="${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR:-${home}/Library/Application Support}"
|
|
|
-prefFile="${pmsApplicationSupportDir}/Plex Media Server/Preferences.xml"
|
|
|
-
|
|
|
-if [ ! -z "${ADVERTISE_IP}" ]; then
|
|
|
- setPref "customConnections" "${ADVERTISE_IP}"
|
|
|
-fi
|
|
|
-
|
|
|
-if [ ! -z "${ALLOWED_NETWORKS}" ]; then
|
|
|
- setPref "allowedNetworks" "${ALLOWED_NETWORKS}"
|
|
|
-fi
|
|
|
-
|
|
|
-# Set transcoder temp if not yet set
|
|
|
-if [ -z "$(getPref "TranscoderTempDirectory")" ]; then
|
|
|
- setPref "TranscoderTempDirectory" "/transcode"
|
|
|
-fi
|
|
|
-
|
|
|
-# Parse list of all exported variables that start with PLEX_PREFERENCE_
|
|
|
-# The format of which is PLEX_PREFERENCE_<SOMETHING>="Key=Value"
|
|
|
-# Where Key is the EXACT key to use in the Plex Preference file
|
|
|
-# And Value is the EXACT value to use in the Plex Preference file for that key.
|
|
|
-# Please note it looks like many of the key's are camelCase in some fashion.
|
|
|
-# Additionally there are likely some preferences where environment variable injection
|
|
|
-# doesn't really work for.
|
|
|
-for var in "${!PLEX_PREFERENCE_@}"; do
|
|
|
- value=${!var}
|
|
|
- PreferenceValue=${value#*=}
|
|
|
- PreferenceKey=${value%=*}
|
|
|
- setPref $PreferenceKey $PreferenceValue
|
|
|
-done
|
|
|
-
|
|
|
-# touch /.firstRunComplete
|
|
|
-# echo "Plex Media Server first run setup complete"
|
|
|
-echo "Plex Media Server preferences update run complete"
|