Explorer
/opt/struktur/runners/lib/runner-lib.sh
← Zurück ↓ Download
#!/usr/bin/env bash
RUNNER_LOG_DIR="/opt/struktur/logs/runners"
RUNNER_PID_DIR="/opt/struktur/runners/pids"
mkdir -p "$RUNNER_PID_DIR"
runner_init() { local JOB="$1"; RUNNER_JOB="$JOB"; RUNNER_START="$(date +%Y%m%d_%H%M%S)"; RUNNER_LOG="$RUNNER_LOG_DIR/${JOB}_${RUNNER_START}.log"; RUNNER_PID_FILE="$RUNNER_PID_DIR/${JOB}.pid"; echo $$ > "$RUNNER_PID_FILE"; exec > >(tee -a "$RUNNER_LOG") 2>&1; echo "=== RUNNER START: $JOB ==="; echo "Datum: $(date)"; echo "PID: $$"; echo "Log: $RUNNER_LOG"; }
runner_step() { echo ""; echo "--- SCHRITT: $1 [$(date +%H:%M:%S)] ---"; }
runner_ok() { echo "[OK] $1"; }
runner_err() { echo "[FEHLER] $1" >&2; runner_finish "FEHLER"; exit 1; }
runner_finish() { local STATUS="${1:-OK}"; local END="$(date)"; echo ""; echo "=== RUNNER ENDE: $RUNNER_JOB ==="; echo "Status: $STATUS | Ende: $END | Log: $RUNNER_LOG"; printf "# Runner Report: %s\n\n- Status: %s\n- Start: %s\n- Ende: %s\n- Log: %s\n" "$RUNNER_JOB" "$STATUS" "$RUNNER_START" "$END" "$RUNNER_LOG" > "/opt/struktur/reports/runner-${RUNNER_JOB}-${RUNNER_START}.md"; rm -f "$RUNNER_PID_FILE"; }