#!/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