Felix Kleinekathöfer %!s(int64=2) %!d(string=hai) anos
pai
achega
3e69304f0f
Modificáronse 1 ficheiros con 18 adicións e 0 borrados
  1. 18 0
      data/Dockerfiles/watchdog/watchdog.sh

+ 18 - 0
data/Dockerfiles/watchdog/watchdog.sh

@@ -125,6 +125,7 @@ function notify_error() {
     SUBJECT="${WATCHDOG_SUBJECT}: ${1}"
     SUBJECT="${WATCHDOG_SUBJECT}: ${1}"
   fi
   fi
 
 
+  # Send mail notification if enabled
   if [[ ! -z ${WATCHDOG_NOTIFY_EMAIL} ]]; then
   if [[ ! -z ${WATCHDOG_NOTIFY_EMAIL} ]]; then
     IFS=',' read -r -a MAIL_RCPTS <<< "${WATCHDOG_NOTIFY_EMAIL}"
     IFS=',' read -r -a MAIL_RCPTS <<< "${WATCHDOG_NOTIFY_EMAIL}"
     for rcpt in "${MAIL_RCPTS[@]}"; do
     for rcpt in "${MAIL_RCPTS[@]}"; do
@@ -158,6 +159,23 @@ function notify_error() {
       fi
       fi
     done
     done
   fi
   fi
+
+  # Send webhook notification if enabled
+  if [[ ! -z ${WATCHDOG_NOTIFY_WEBHOOK} ]]; then
+    if [[ -z ${WATCHDOG_NOTIFY_WEBHOOK_BODY} ]]; then
+      log_msg "No webhook body set, skipping webhook notification..."
+      return 1
+    fi
+
+    WEBHOOK_BODY=$(echo "${WATCHDOG_NOTIFY_WEBHOOK_BODY}" | envsubst '$SUBJECT,$BODY')
+
+    curl -X POST \
+      -H "Content-Type: application/json" \
+      -d ${WEBHOOK_BODY} \
+      ${WATCHDOG_NOTIFY_WEBHOOK}
+
+    log_msg "Posted notification to webhook"
+  fi
 }
 }
 
 
 get_container_ip() {
 get_container_ip() {