From 57a375c5b3fe4116b2e480a9004f132c6499bb8f Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Tue, 5 Aug 2025 23:40:27 +0200 Subject: [PATCH] =?UTF-8?q?update=5Fnewt.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update_newt.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 update_newt.sh diff --git a/update_newt.sh b/update_newt.sh new file mode 100644 index 0000000..aeac8a9 --- /dev/null +++ b/update_newt.sh @@ -0,0 +1,56 @@ +#!/bin/bash +set -e + +REPO="fosrl/newt" +INSTALL_DIR="/opt/newt" +SERVICE_NAME="PVE-MGNT" +SYMLINK="${INSTALL_DIR}/newt_latest" + +info() { echo -e "\033[0;32m[INFO]\033[0m $1"; } +error() { echo -e "\033[0;31m[ERROR]\033[0m $1"; exit 1; } + +get_latest_version() { + curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" | grep -Po '"tag_name": *"\K[^"]+' +} + +download_newt() { + local version="$1" + local arch=$(uname -m) + local file="" + + case "$arch" in + x86_64) file="newt_linux_amd64" ;; + aarch64) file="newt_linux_arm64" ;; + armv7l) file="newt_linux_arm32" ;; + *) error "Nicht unterstützte Architektur: $arch" ;; + esac + + local url="https://github.com/${REPO}/releases/download/${version}/${file}" + local target="${INSTALL_DIR}/newt_${version}" + mkdir -p "$INSTALL_DIR" + info "⬇️ Lade $url herunter …" + curl -fsSL "$url" -o "${target}.tmp" || error "Download fehlgeschlagen." + chmod +x "${target}.tmp" + mv "${target}.tmp" "$target" + ln -sf "$target" "$SYMLINK" + info "✅ newt ${version} installiert als ${target}" +} + +main() { + local version + version=$(get_latest_version) + version=${version#v} + info "📦 Neueste Version: $version" + + if [ -f "${INSTALL_DIR}/newt_${version}" ]; then + info "✅ Version $version ist bereits installiert. Kein Update nötig." + exit 0 + fi + + download_newt "$version" + info "🔄 Dienst $SERVICE_NAME neu starten ..." + systemctl restart "$SERVICE_NAME" + info "🚀 Update abgeschlossen!" +} + +main "$@"