diff --git a/install.sh b/install.sh index 014dd93..c70db52 100755 --- a/install.sh +++ b/install.sh @@ -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 # ============================================================================