install_newt.sh aktualisiert
This commit is contained in:
@@ -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 ;;
|
||||
|
||||
Reference in New Issue
Block a user