#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" TEMPLATE_DIR="${TEMPLATE_DIR:-/boot/config/plugins/dockerMan/templates-user}" TEMPLATE_NAME="${TEMPLATE_NAME:-my-lidarr-spotify-frontend.xml}" TEMPLATE_PATH="${TEMPLATE_DIR}/${TEMPLATE_NAME}" CONTAINER_NAME="${CONTAINER_NAME:-lidarr-spotify-frontend}" IMAGE_REPO="${IMAGE_REPO:-local/lidarr-spotify-frontend}" IMAGE_TAG="${IMAGE_TAG:-latest}" IMAGE="${IMAGE_REPO}:${IMAGE_TAG}" HOST_PORT="${HOST_PORT:-3000}" APPDATA_PATH="${APPDATA_PATH:-/mnt/user/appdata/lidarr-spotify-frontend}" MUSIC_PATH="${MUSIC_PATH:-/mnt/user/music}" TZ_VALUE="${TZ_VALUE:-Europe/Berlin}" SPOTIFY_CLIENT_ID="${SPOTIFY_CLIENT_ID:-}" SPOTIFY_CLIENT_SECRET="${SPOTIFY_CLIENT_SECRET:-}" YOUTUBE_API_KEY="${YOUTUBE_API_KEY:-}" LIDARR_URL="${LIDARR_URL:-http://lidarr:8686}" LIDARR_API_KEY="${LIDARR_API_KEY:-}" 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}")" YOUTUBE_API_KEY_ESCAPED="$(xml_escape "${YOUTUBE_API_KEY}")" 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 fi echo "==> Build image ${IMAGE}" docker build -t "${IMAGE}" "${PROJECT_ROOT}" mkdir -p "${TEMPLATE_DIR}" TMP_TEMPLATE="$(mktemp)" trap 'rm -f "${TMP_TEMPLATE}"' EXIT cat > "${TMP_TEMPLATE}" < ${CONTAINER_NAME} ${IMAGE} https://hub.docker.com/ bridge sh false https://github.com/ Frontend fuer Spotify Album-Suche und Uebergabe an Lidarr. Downloader: http://[IP]:[PORT:3000]/ https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main/svg/lidarr.svg Spotify Albumsuche, Track-Auswahl und Uebergabe an Lidarr. ${HOST_PORT_ESCAPED} ${APPDATA_PATH_ESCAPED} ${MUSIC_PATH_ESCAPED} ${TZ_VALUE_ESCAPED} ${SPOTIFY_CLIENT_ID_ESCAPED} ${SPOTIFY_CLIENT_SECRET_ESCAPED} ${YOUTUBE_API_KEY_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 "${TMP_TEMPLATE}" fi if [[ -f "${TEMPLATE_PATH}" ]]; then if cmp -s "${TMP_TEMPLATE}" "${TEMPLATE_PATH}"; then echo "==> Template unveraendert, kein Überschreiben: ${TEMPLATE_PATH}" else echo "==> Aktualisiere vorhandenes Template: ${TEMPLATE_PATH}" mv "${TMP_TEMPLATE}" "${TEMPLATE_PATH}" TMP_TEMPLATE="" fi else echo "==> Erstelle neues Template: ${TEMPLATE_PATH}" mv "${TMP_TEMPLATE}" "${TEMPLATE_PATH}" TMP_TEMPLATE="" fi echo "==> Fertig" echo "Image: ${IMAGE}" echo "Template: ${TEMPLATE_PATH}" echo "Import in Unraid ueber: Docker -> Add Container -> Template -> ${TEMPLATE_NAME}"