48 lines
1.8 KiB
Bash
Executable File
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"
|