#!/bin/bash # ============================================================================ # TESM-Lizenzserver — Update/Reinstall (Bootstrapper) # Fork von update.sh (TESM selbst) -- lädt dasselbe gepackte Gitea-Release # herunter (das Repo enthält beide Apps: srv/tesm/ UND srv/tesm-license/) # und übergibt an install-license.sh aus dem Paket, statt install.sh. # # Auszuführen als root auf dem Zielsystem: # sudo ./update-license.sh # Optional übersteuerbar (z.B. für eine bestimmte Version statt "latest"): # TESM_RELEASE_TAG=v1.0.0 sudo -E ./update-license.sh # ============================================================================ set -e GITEA_BASE="${TESM_GITEA_BASE:-https://gitea.int.eertmoed.net}" REPO_OWNER="${TESM_REPO_OWNER:-alientim}" REPO_NAME="${TESM_REPO_NAME:-tesm}" RELEASE_TAG="${TESM_RELEASE_TAG:-latest}" GITEA_USER="${TESM_GITEA_USER:-}" GITEA_TOKEN="${TESM_GITEA_TOKEN:-}" PACKAGE_NAME="tesm-${RELEASE_TAG}.tar.gz" DOWNLOAD_URL="${GITEA_BASE}/${REPO_OWNER}/${REPO_NAME}/releases/download/${RELEASE_TAG}/${PACKAGE_NAME}" WORK_DIR="/tmp/tesm-license-update-$(date +%s)" PACKAGE_FILE="$WORK_DIR/${PACKAGE_NAME}" RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' if [ "$(id -u)" -ne 0 ]; then echo "Bitte als root ausführen (sudo ./update-license.sh)." >&2 exit 1 fi echo -e "${YELLOW}============================================================================${NC}" echo -e "${YELLOW} TESM-Lizenzserver Update/Reinstall — Release \"${RELEASE_TAG}\"${NC}" echo -e "${YELLOW}============================================================================${NC}" echo echo "Lädt das Release-Paket herunter (enthält TESM und den Lizenzserver" echo "zusammen) und übergibt Installation/Update an install-license.sh" echo "daraus -- deployt ausschließlich srv/tesm-license/, lässt eine" echo "eventuell auf demselben Host vorhandene TESM-Installation unberührt." echo read -r -p "Fortfahren? [y/N] " confirm if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then echo "Abgebrochen — nichts wurde verändert." exit 0 fi echo -e "${RED}→${NC} Lade Paket von ${DOWNLOAD_URL}..." mkdir -p "$WORK_DIR" CURL_AUTH=() if [ -n "$GITEA_USER" ] && [ -n "$GITEA_TOKEN" ]; then CURL_AUTH=(-u "${GITEA_USER}:${GITEA_TOKEN}") fi curl -fsSL "${CURL_AUTH[@]}" -o "$PACKAGE_FILE" "$DOWNLOAD_URL" echo -e "${GREEN}✔${NC} Paket heruntergeladen ($(du -h "$PACKAGE_FILE" | cut -f1))." echo -e "${RED}→${NC} Entpacke Paket..." mkdir -p "$WORK_DIR/pkg" tar xzf "$PACKAGE_FILE" -C "$WORK_DIR/pkg" --strip-components=1 echo -e "${GREEN}✔${NC} Paket entpackt." echo -e "${RED}→${NC} Starte install-license.sh aus dem Paket..." bash "$WORK_DIR/pkg/install-license.sh" echo echo -e "${GREEN}============================================================================${NC}" echo -e "${GREEN} TESM-Lizenzserver Update/Reinstall (Release \"${RELEASE_TAG}\") abgeschlossen.${NC}" echo -e "${GREEN}============================================================================${NC}"