lidarr-spotify-frontend/start.sh

93 lines
2.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
if [ -z "${BASH_VERSION:-}" ]; then
exec bash "$0" "$@"
fi
set -euo pipefail
INSTALL_DIR="${INSTALL_DIR:-/boot/config/custom/lidarr-spotify-frontend}"
REPO_URL="${REPO_URL:-https://forgejo.tailef61c0.ts.net/openclaw/lidarr-spotify-frontend.git}"
REPO_BRANCH="${REPO_BRANCH:-main}"
if [[ "${START_BOOTSTRAPPED:-0}" != "1" ]]; then
if ! command -v git >/dev/null 2>&1; then
echo "Fehler: git wurde nicht gefunden."
exit 1
fi
mkdir -p "${INSTALL_DIR}"
if [[ -d "${INSTALL_DIR}/.git" ]]; then
echo "==> Repo vorhanden, aktualisiere: ${INSTALL_DIR}"
if [[ "${SKIP_GIT_PULL:-0}" != "1" ]]; then
git -C "${INSTALL_DIR}" fetch --prune origin
git -C "${INSTALL_DIR}" checkout "${REPO_BRANCH}"
git -C "${INSTALL_DIR}" pull --ff-only origin "${REPO_BRANCH}"
fi
else
if [[ -n "$(ls -A "${INSTALL_DIR}" 2>/dev/null)" ]]; then
echo "Fehler: ${INSTALL_DIR} existiert, ist aber kein Git-Repo und nicht leer."
echo "Bitte leeren/entfernen oder INSTALL_DIR auf einen anderen Pfad setzen."
exit 1
fi
echo "==> Clone Repo nach ${INSTALL_DIR}"
git clone --branch "${REPO_BRANCH}" "${REPO_URL}" "${INSTALL_DIR}"
fi
exec env \
START_BOOTSTRAPPED=1 \
INSTALL_DIR="${INSTALL_DIR}" \
REPO_URL="${REPO_URL}" \
REPO_BRANCH="${REPO_BRANCH}" \
SKIP_GIT_PULL="${SKIP_GIT_PULL:-0}" \
UNRAID_URL="${UNRAID_URL:-}" \
TEMPLATE_NAME="${TEMPLATE_NAME:-my-lidarr-spotify-frontend.xml}" \
bash "${INSTALL_DIR}/start.sh" "$@"
fi
PROJECT_ROOT="${INSTALL_DIR}"
RUN_SCRIPT="${PROJECT_ROOT}/scripts/run-unraid.sh"
if [[ ! -x "${RUN_SCRIPT}" ]]; then
chmod +x "${RUN_SCRIPT}"
fi
for env_file in "${PROJECT_ROOT}/.env.unraid" "${PROJECT_ROOT}/.env"; do
if [[ -f "${env_file}" ]]; then
echo "==> Lade Umgebungswerte aus ${env_file}"
# shellcheck disable=SC1090
set -a; source "${env_file}"; set +a
break
fi
done
"${RUN_SCRIPT}"
TEMPLATE_NAME="${TEMPLATE_NAME:-my-lidarr-spotify-frontend.xml}"
UNRAID_URL="${UNRAID_URL:-}"
if [[ -z "${UNRAID_URL}" ]]; then
if command -v hostname >/dev/null 2>&1; then
HOST_IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
if [[ -n "${HOST_IP}" ]]; then
UNRAID_URL="http://${HOST_IP}"
fi
fi
fi
if [[ -z "${UNRAID_URL}" ]]; then
UNRAID_URL="http://tower"
fi
UNRAID_URL="${UNRAID_URL%/}"
TARGET_URL="${UNRAID_URL}/Docker/AddContainer?xmlTemplate=user/${TEMPLATE_NAME}"
echo "==> Template direkt aufrufen:"
echo "${TARGET_URL}"
if command -v xdg-open >/dev/null 2>&1; then
xdg-open "${TARGET_URL}" >/dev/null 2>&1 || true
elif command -v open >/dev/null 2>&1; then
open "${TARGET_URL}" >/dev/null 2>&1 || true
fi