install_newt.sh aktualisiert

This commit is contained in:
2025-08-05 23:28:15 +02:00
parent 6ed092a5e6
commit cdf9a50dea

View File

@@ -1,5 +1,5 @@
#!/bin/bash
set -e
set -ex # -e = Abbruch bei Fehler, -x = Ausgabe jeder ausgeführten Zeile
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
@@ -28,12 +28,15 @@ for arg in "$@"; do
done
get_latest_version() {
echo "[DEBUG] get_latest_version aufgerufen"
curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" | grep -Po '"tag_name": *"\K[^"]+'
}
download_newt() {
echo "[DEBUG] download_newt aufgerufen mit Version=$1"
version="$1"
arch=$(uname -m)
echo "[DEBUG] Architektur erkannt: $arch"
case "$arch" in
x86_64) file="newt_linux_amd64" ;;
@@ -57,6 +60,7 @@ download_newt() {
}
cleanup_old_versions() {
echo "[DEBUG] cleanup_old_versions aufgerufen"
cd "$INSTALL_DIR"
keep=$(readlink -f newt_latest)
versions=($(ls -1 newt_* | grep -v latest | sort -Vr))
@@ -73,12 +77,16 @@ cleanup_old_versions() {
}
setup_systemd_service() {
echo "[DEBUG] setup_systemd_service aufgerufen"
info "🛠️ Erstelle systemd-Dienst ${SERVICE_NAME} ..."
# Eingabeaufforderungen im User-Kontext
read -rp "🆔 Bitte gib die Pangolin-ID ein: " PANGOLIN_ID
echo "[DEBUG] Pangolin-ID eingegeben: $PANGOLIN_ID"
read -rp "🔑 Bitte gib das Secret ein: " PANGOLIN_SECRET
echo "[DEBUG] Secret eingegeben (aus Sicherheitsgründen nicht ausgegeben)"
read -rp "🌐 Bitte gib den Endpoint (z.B. https://pangolin.domain.de) ein: " PANGOLIN_ENDPOINT
echo "[DEBUG] Endpoint eingegeben: $PANGOLIN_ENDPOINT"
SERVICE_CONTENT="[Unit]
Description=Newt Client - ${SERVICE_NAME}
@@ -102,6 +110,7 @@ WantedBy=multi-user.target"
}
perform_install() {
echo "[DEBUG] perform_install aufgerufen"
if [ -f "$SERVICE_FILE" ]; then
warn "Dienst ${SERVICE_NAME} existiert bereits. Nutze --reinstall für Neuinstallation."
exit 0
@@ -116,6 +125,7 @@ perform_install() {
}
perform_update() {
echo "[DEBUG] perform_update aufgerufen"
if [ ! -f "$SERVICE_FILE" ]; then
error "Dienst ${SERVICE_NAME} nicht installiert. Nutze --install oder --reinstall."
exit 1
@@ -136,17 +146,21 @@ perform_update() {
}
perform_reinstall() {
echo "[DEBUG] perform_reinstall aufgerufen"
version=$(get_latest_version)
version=${version#v}
info "📦 Neueste Version: ${version}"
download_newt "$version"
cleanup_old_versions
sudo rm -f "$SERVICE_FILE" || true
echo "[DEBUG] Vor setup_systemd_service"
setup_systemd_service
echo "[DEBUG] Nach setup_systemd_service"
info "🚀 Reinstallation abgeschlossen!"
}
main() {
echo "[DEBUG] main aufgerufen mit MODE=$MODE"
case "$MODE" in
install) perform_install ;;
update) perform_update ;;