stremio/deploy/node/upgrade-node.sh
Jos Vooges | STH af1f471b29 Fix dropped library sync after startup scan and bump media-node to 1.3.10.
Queue a second full sync when one is already running so newly indexed seasons are not lost after upgrade/restart.
2026-09-17 02:07:52 +02:00

80 lines
2.3 KiB
Bash

#!/bin/bash
# Upgrade media-node binary (download latest from Master + restart container).
set -euo pipefail
MASTER_URL="${MASTER_URL:-__MASTER_PUBLIC_URL__}"
APPDATA="${APPDATA:-/mnt/user/appdata/media-node}"
CONTAINER="${CONTAINER:-media-node}"
usage() {
cat <<EOF
Gebruik:
curl -fsSL ${MASTER_URL}/install/upgrade-node.sh | bash -s -- --appdata=/mnt/user/appdata/media-node
Opties:
--appdata= Appdata-map met bin/media-node (Unraid: /mnt/user/appdata/media-node, Synology: /volume1/docker/media-node)
--container= Docker-containernaam (default: media-node)
--master= Master-URL (default: ${MASTER_URL})
EOF
}
for arg in "$@"; do
case "$arg" in
--appdata=*) APPDATA="${arg#*=}" ;;
--container=*) CONTAINER="${arg#*=}" ;;
--master=*) MASTER_URL="${arg#*=}" ;;
-h|--help) usage; exit 0 ;;
*) echo "Onbekende optie: $arg"; usage; exit 1 ;;
esac
done
MASTER_URL="$(echo -n "$MASTER_URL" | sed 's:/*$::')"
APPDATA="$(echo -n "$APPDATA" | tr -d '\r\n')"
docker_cmd() {
if docker info >/dev/null 2>&1; then
docker "$@"
return
fi
if command -v sudo >/dev/null 2>&1 && sudo docker info >/dev/null 2>&1; then
sudo docker "$@"
return
fi
echo "Docker niet gevonden of geen rechten. Draai als root (Synology: sudo -i)."
exit 1
}
if ! command -v docker >/dev/null 2>&1 && ! command -v sudo >/dev/null 2>&1; then
echo "Docker niet gevonden."
exit 1
fi
ARCH="$(uname -m)"
case "$ARCH" in
x86_64|amd64) BIN_NAME="media-node-linux-amd64" ;;
aarch64|arm64) BIN_NAME="media-node-linux-arm64" ;;
*) echo "Niet-ondersteunde architectuur: $ARCH"; exit 1 ;;
esac
BIN_DIR="$APPDATA/bin"
BIN_PATH="$BIN_DIR/media-node"
mkdir -p "$BIN_DIR"
echo "=== media-node upgrade ==="
echo "Master: $MASTER_URL"
echo "Binary: $BIN_PATH"
echo "Container: $CONTAINER"
echo
echo "Downloaden ($BIN_NAME)..."
curl -fsSL "$MASTER_URL/install/$BIN_NAME" -o "$BIN_PATH.new"
chmod +x "$BIN_PATH.new"
mv "$BIN_PATH.new" "$BIN_PATH"
if docker_cmd ps -a --format '{{.Names}}' | grep -qx "$CONTAINER"; then
echo "Container herstarten..."
docker_cmd restart "$CONTAINER" >/dev/null
echo "Klaar. Controleer versie in Admin → Nodes (verwacht ${MEDIA_NODE_VERSION:-1.3.10}+)."
else
echo "Waarschuwing: container '$CONTAINER' niet gevonden — binary is wel bijgewerkt."
fi