OverviewFilesCommitsIssuesDocsReleasesPeers

pear-git / scripts / run-loop.sh

34 lines · bash ref:
#!/bin/bash

# Restart loop for pear-git server
# Automatically restarts on clean exit (pgh serve restart) or crash
# Stop with: touch .stop-server && kill %1  (or Ctrl+C twice)

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
STOP_FILE="$PROJECT_DIR/.stop-server"

cd "$PROJECT_DIR"
rm -f "$STOP_FILE"

while true; do
    echo "[runner] Starting pear-git server..."
    bare pear-git-server.js "$@"
    EXIT_CODE=$?

    # Check for stop file (pgh serve shutdown creates this)
    if [ -f "$STOP_FILE" ]; then
        echo "[runner] Stop file found, not restarting."
        rm -f "$STOP_FILE"
        break
    fi

    if [ $EXIT_CODE -ne 0 ]; then
        echo "[runner] Server crashed (exit $EXIT_CODE), restarting in 2s..."
        sleep 2
    else
        echo "[runner] Server exited cleanly, restarting in 1s..."
        sleep 1
    fi
done