Add monitoring of scripts through healthchecks.io

Updates the README with more cron script setup instructions.
This commit is contained in:
2025-09-03 22:28:11 -04:00
parent 7b8fbea7d4
commit 68c5cfe8a6
4 changed files with 136 additions and 3 deletions

View File

@@ -1,4 +1,40 @@
#!/bin/bash
set -e
set -o pipefail
# Load environment variables
export $(grep -v '^#' .env | xargs -d '\n')
# Generate UUID for this run
RID=$(cat /proc/sys/kernel/random/uuid)
# Healthchecks.io ping function
ping_healthcheck() {
local endpoint="$1"
local data="$2"
if [ -n "$data" ]; then
curl -fsS -m 10 --retry 5 --data-raw "$data" "https://hc-ping.com/${HEALTHCHECK_PING_KEY}/modmapper-update${endpoint}?rid=${RID}" >/dev/null || true
else
curl -fsS -m 10 --retry 5 "https://hc-ping.com/${HEALTHCHECK_PING_KEY}/modmapper-update${endpoint}?rid=${RID}" >/dev/null || true
fi
}
# Send failure notification with logs
send_failure() {
local logs=""
if [ -f logs/modmapper.log ]; then
logs=$(tail --bytes=100000 logs/modmapper.log)
fi
ping_healthcheck "/fail" "$logs"
exit 1
}
# Trap to catch failures
trap send_failure ERR
# Send start ping
ping_healthcheck "/start"
if [ -f cells/edits.json ]; then
last_update_time=$(date -r cells/edits.json +'%Y-%m-%dT%H:%M:%S')
fi
@@ -29,4 +65,7 @@ else
./target/release/mod-mapper -m mods &>> logs/modmapper.log
./target/release/mod-mapper -P plugins_data &>> logs/modmapper.log
./target/release/mod-mapper -F files &>> logs/modmapper.log
fi
fi
# Send success ping
ping_healthcheck ""