From 1f75bb76debdb4a60a085e0b040668a84bcc928d Mon Sep 17 00:00:00 2001 From: J0Z1L Date: Fri, 27 Feb 2026 23:52:26 +0100 Subject: [PATCH] Escape XML values and simplify Unraid template config entries --- scripts/run-unraid.sh | 49 ++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/scripts/run-unraid.sh b/scripts/run-unraid.sh index abda2e9..934bfd5 100755 --- a/scripts/run-unraid.sh +++ b/scripts/run-unraid.sh @@ -25,6 +25,28 @@ LIDARR_ROOT_FOLDER="${LIDARR_ROOT_FOLDER:-/music}" LIDARR_QUALITY_PROFILE_ID="${LIDARR_QUALITY_PROFILE_ID:-1}" LIDARR_METADATA_PROFILE_ID="${LIDARR_METADATA_PROFILE_ID:-1}" +xml_escape() { + local s="${1:-}" + s="${s//&/&}" + s="${s///>}" + s="${s//\"/"}" + s="${s//\'/'}" + printf '%s' "${s}" +} + +HOST_PORT_ESCAPED="$(xml_escape "${HOST_PORT}")" +APPDATA_PATH_ESCAPED="$(xml_escape "${APPDATA_PATH}")" +MUSIC_PATH_ESCAPED="$(xml_escape "${MUSIC_PATH}")" +TZ_VALUE_ESCAPED="$(xml_escape "${TZ_VALUE}")" +SPOTIFY_CLIENT_ID_ESCAPED="$(xml_escape "${SPOTIFY_CLIENT_ID}")" +SPOTIFY_CLIENT_SECRET_ESCAPED="$(xml_escape "${SPOTIFY_CLIENT_SECRET}")" +LIDARR_URL_ESCAPED="$(xml_escape "${LIDARR_URL}")" +LIDARR_API_KEY_ESCAPED="$(xml_escape "${LIDARR_API_KEY}")" +LIDARR_ROOT_FOLDER_ESCAPED="$(xml_escape "${LIDARR_ROOT_FOLDER}")" +LIDARR_QUALITY_PROFILE_ID_ESCAPED="$(xml_escape "${LIDARR_QUALITY_PROFILE_ID}")" +LIDARR_METADATA_PROFILE_ID_ESCAPED="$(xml_escape "${LIDARR_METADATA_PROFILE_ID}")" + if ! command -v docker >/dev/null 2>&1; then echo "Fehler: docker wurde nicht gefunden." exit 1 @@ -61,24 +83,27 @@ cat > "${TEMPLATE_PATH}" < - $(date +%s) Spotify Albumsuche, Track-Auswahl und Uebergabe an Lidarr. - ${HOST_PORT} - ${APPDATA_PATH} - ${MUSIC_PATH} - ${TZ_VALUE} - ${SPOTIFY_CLIENT_ID} - ${SPOTIFY_CLIENT_SECRET} - ${LIDARR_URL} - ${LIDARR_API_KEY} - ${LIDARR_ROOT_FOLDER} - ${LIDARR_QUALITY_PROFILE_ID} - ${LIDARR_METADATA_PROFILE_ID} + ${HOST_PORT_ESCAPED} + ${APPDATA_PATH_ESCAPED} + ${MUSIC_PATH_ESCAPED} + ${TZ_VALUE_ESCAPED} + ${SPOTIFY_CLIENT_ID_ESCAPED} + ${SPOTIFY_CLIENT_SECRET_ESCAPED} + ${LIDARR_URL_ESCAPED} + ${LIDARR_API_KEY_ESCAPED} + ${LIDARR_ROOT_FOLDER_ESCAPED} + ${LIDARR_QUALITY_PROFILE_ID_ESCAPED} + ${LIDARR_METADATA_PROFILE_ID_ESCAPED} EOF +if command -v xmllint >/dev/null 2>&1; then + xmllint --noout "${TEMPLATE_PATH}" +fi + echo "==> Fertig" echo "Image: ${IMAGE}" echo "Template: ${TEMPLATE_PATH}"