Proxy Setup Init

This commit is contained in:
2026-01-18 17:03:16 +01:00
parent 2dfa9a02ec
commit 0618e21cb0
2 changed files with 90 additions and 30 deletions

View File

@@ -1,13 +1,48 @@
#!/usr/bin/env bash
set -Eeuo pipefail
# Debug mode: 0 = nur JSON ausgeben, 1 = Logs auf stderr
DEBUG="${DEBUG:-0}"
log_ts() { date "+[%F %T]"; }
info() { echo "$(log_ts) INFO: $*" >&2; }
warn() { echo "$(log_ts) WARN: $*" >&2; }
die() { echo "$(log_ts) ERROR: $*" >&2; exit 1; }
info() {
[[ "$DEBUG" == "1" ]] && echo "$(log_ts) INFO: $*" >&2
return 0
}
warn() {
[[ "$DEBUG" == "1" ]] && echo "$(log_ts) WARN: $*" >&2
return 0
}
die() {
if [[ "$DEBUG" == "1" ]]; then
echo "$(log_ts) ERROR: $*" >&2
else
# JSON-Fehler auf fd 3 ausgeben (falls verfügbar), sonst stdout
if { true >&3; } 2>/dev/null; then
echo "{\"error\": \"$*\"}" >&3
else
echo "{\"error\": \"$*\"}"
fi
fi
exit 1
}
setup_traps() {
trap 'rc=$?; [[ $rc -ne 0 ]] && echo "$(log_ts) ERROR: Failed at line ${BASH_LINENO[0]}: ${BASH_COMMAND} (exit=$rc)" >&2; exit $rc' ERR
trap 'rc=$?; if [[ $rc -ne 0 ]]; then
if [[ "$DEBUG" == "1" ]]; then
echo "$(log_ts) ERROR: Failed at line ${BASH_LINENO[0]}: ${BASH_COMMAND} (exit=$rc)" >&2
else
# JSON-Fehler auf fd 3 ausgeben (falls verfügbar), sonst stdout
if { true >&3; } 2>/dev/null; then
echo "{\"error\": \"Failed at line ${BASH_LINENO[0]}: ${BASH_COMMAND} (exit=$rc)\"}" >&3
else
echo "{\"error\": \"Failed at line ${BASH_LINENO[0]}: ${BASH_COMMAND} (exit=$rc)\"}"
fi
fi
fi; exit $rc' ERR
}
need_cmd() {