Files

48 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Installation innerhalb eines bereits laufenden Debian-Slim-Containers.
# Der empfohlene, reproduzierbare Weg bleibt der Dockerfile-Build.
set -Eeuo pipefail
[[ $EUID -eq 0 ]] || { echo "Bitte im Container als root ausführen." >&2; exit 1; }
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
SONARR_PATCH="$REPO_ROOT/platform/mcp/patches/mcp_sonarr.py"
RADARR_PATCH="$REPO_ROOT/platform/mcp/patches/mcp_radarr.py"
[[ -f $SONARR_PATCH && -f $RADARR_PATCH ]] || {
echo "Die Installation muss aus einem vollständigen Checkout dieses Repositories laufen." >&2
exit 2
}
need_python_packages=0
venv_check_dir="$(mktemp -d)"
if ! command -v python3 >/dev/null 2>&1 \
|| ! python3 -m venv "$venv_check_dir/check" >/dev/null 2>&1; then
need_python_packages=1
fi
rm -rf "$venv_check_dir"
if (( need_python_packages )); then
command -v apt-get >/dev/null 2>&1 || {
echo "Dieser Installer erwartet Debian/Ubuntu mit apt-get." >&2
exit 3
}
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates python3 python3-pip python3-venv
rm -rf /var/lib/apt/lists/*
fi
python3 -m venv /opt/arr-mcp/venv
/opt/arr-mcp/venv/bin/pip install --no-cache-dir --upgrade pip
/opt/arr-mcp/venv/bin/pip install --no-cache-dir "arr-mcp[mcp]==1.0.1"
site_packages="$(/opt/arr-mcp/venv/bin/python -c 'import site; print(site.getsitepackages()[0])')"
install -m 0644 "$SONARR_PATCH" "$site_packages/arr_mcp/mcp/mcp_sonarr.py"
install -m 0644 "$RADARR_PATCH" "$site_packages/arr_mcp/mcp/mcp_radarr.py"
install -m 0755 "$SCRIPT_DIR/run.sh" /usr/local/bin/run-arr-mcp
/opt/arr-mcp/venv/bin/python -m compileall -q "$site_packages/arr_mcp/mcp"
echo "ARR-MCP ist installiert. Start: /usr/local/bin/run-arr-mcp"