#!/usr/bin/env bash set -euo pipefail # Environment variables (can be passed via docker-compose) : "${GIT_REPO:?You must set GIT_REPO environment variable}" GIT_BRANCH="${GIT_BRANCH:-main}" WEBHOOK_SECRET="${WEBHOOK_SECRET:-}" WEBHOOK_PORT="${WEBHOOK_PORT:-9000}" HUGO_FLAGS="${HUGO_FLAGS:-}" HUGO_BASEURL="${HUGO_BASEURL:-http://localhost:1313}" REPO_DIR="/app/site" HOOKS_FILE="/app/hooks.json" WEBHOOK_BIN="/usr/local/bin/webhook" # Clone repo into volume if missing if [ ! -d "$REPO_DIR/.git" ]; then echo "Cloning $GIT_REPO (branch $GIT_BRANCH) into $REPO_DIR" git clone --branch "$GIT_BRANCH" --single-branch --recursive "$GIT_REPO" "$REPO_DIR" else echo "Repository already exists at $REPO_DIR" fi # Ensure working tree matches origin branch git -C "$REPO_DIR" fetch origin "$GIT_BRANCH" || true git -C "$REPO_DIR" reset --hard "origin/$GIT_BRANCH" || true # Generate hooks.json for adnanh/webhook with secret and trigger rule for branch cat > "$HOOKS_FILE" </dev/null || true wait "$WEBHOOK_PID" 2>/dev/null || true