fix(installer): Re-Exec auch ohne curl (wget/busybox/lokale Quelle)
Auf einem frischen System fehlt curl haeufig — genau dort, wo apt laeuft und der Schutz am noetigsten ist. Der Re-Exec scheiterte deshalb still und der Installer lief ohne Schutz weiter. Jetzt: curl -> wget -> busybox wget -> lokale Quelle (NETBIRD_TG_SOURCE). Ist keiner verfuegbar, wird das ausdruecklich gemeldet statt still uebergangen.
This commit is contained in:
1 parent
9e6593a6f6
commit
06ad67f8f5
1 file changed
+23
-6
+23
-6
@@ -21,9 +21,28 @@ if [ -z "${NETBIRD_TG_REEXEC:-}" ] && [ ! -t 0 ]; then
|
||||
# Rest und die Kopie waere unvollstaendig. Stattdessen frisch von der Quelle
|
||||
# laden (dieselbe URL, die der Aufrufer benutzt hat).
|
||||
_src="${REPO_RAW:-https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main}"
|
||||
_self="$(mktemp /tmp/netbird-telegraf-install.XXXXXX)"
|
||||
if command -v curl >/dev/null 2>&1 && \
|
||||
curl -fsSL "$_src/install.sh" -o "$_self" 2>/dev/null && [ -s "$_self" ]; then
|
||||
_self="$(mktemp /tmp/netbird-telegraf-install.XXXXXX 2>/dev/null || echo /tmp/netbird-tg.$$)"
|
||||
|
||||
# WICHTIG: auf einem FRISCHEN System gibt es oft kein curl — genau dort, wo
|
||||
# der Schutz am noetigsten ist (dort laeuft apt und damit needrestart).
|
||||
# Deshalb BEIDE Wege versuchen und, wenn keiner geht, das Skript weiter
|
||||
# ausfuehren wie bisher (dann bleibt das Risiko, aber es laeuft).
|
||||
_dl=0
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fsSL "$_src/install.sh" -o "$_self" 2>/dev/null && [ -s "$_self" ] && _dl=1
|
||||
fi
|
||||
if [ "$_dl" -eq 0 ] && command -v wget >/dev/null 2>&1; then
|
||||
wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1
|
||||
fi
|
||||
if [ "$_dl" -eq 0 ] && command -v busybox >/dev/null 2>&1; then
|
||||
busybox wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1
|
||||
fi
|
||||
# Letzter Weg: liegt das Skript schon lokal (z. B. per scp), von dort kopieren.
|
||||
if [ "$_dl" -eq 0 ] && [ -n "${NETBIRD_TG_SOURCE:-}" ] && [ -s "${NETBIRD_TG_SOURCE:-}" ]; then
|
||||
cp "${NETBIRD_TG_SOURCE}" "$_self" 2>/dev/null && _dl=1
|
||||
fi
|
||||
|
||||
if [ "$_dl" -eq 1 ]; then
|
||||
chmod 0700 "$_self"
|
||||
printf '[netbird-telegraf] Selbstschutz: Skript laeuft jetzt von %s (stdin frei).\n' "$_self"
|
||||
# stdin ausdruecklich auf /dev/null: der Prozess erbt sonst die Pipe, und
|
||||
@@ -33,9 +52,7 @@ if [ -z "${NETBIRD_TG_REEXEC:-}" ] && [ ! -t 0 ]; then
|
||||
rm -f "$_self"
|
||||
exit "$_rc"
|
||||
fi
|
||||
# Kein curl oder Download fehlgeschlagen: weiter wie bisher. Dann bleibt das
|
||||
# Risiko, aber der Installer laeuft wenigstens (z. B. in einer Umgebung ohne
|
||||
# Netz beim zweiten Aufruf).
|
||||
printf '[netbird-telegraf] HINWEIS: kein curl/wget fuer den Selbstschutz — weiter ohne.\n'
|
||||
rm -f "$_self"
|
||||
fi
|
||||
# ============================================================================
|
||||
|
||||
Reference in new issue
Block a user