26 lines
741 B
Bash
26 lines
741 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
level="${1:-INFO}" # e.g., INFO, WARN, ERROR
|
|
event="${2:-general}" # e.g., backup, restore-test
|
|
message="${3:-}"
|
|
|
|
# Telegram config via environment
|
|
BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-}"
|
|
CHAT_ID="${TELEGRAM_CHAT_ID:-}"
|
|
|
|
# Log to syslog
|
|
logger -t soloforge "[$level][$event] $message"
|
|
|
|
# Send to Telegram if configured
|
|
if [[ -n "$BOT_TOKEN" && -n "$CHAT_ID" ]]; then
|
|
# Keep the message simple to avoid escaping headaches
|
|
safe_msg=$(echo "$message" | tr '"' "'" )
|
|
|
|
curl -sS -X POST \
|
|
"https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
|
|
-d "chat_id=${CHAT_ID}" \
|
|
--data-urlencode "text=[SoloForge][$level][$event] $safe_msg" \
|
|
>/dev/null 2>&1 || true
|
|
fi
|