#!/usr/bin/env bash # Newbury Exhibit — deploy box runner (pull-only, never pushes). # Forces local working copy to match origin/dev, then (re)starts the server. set -e BRANCH=dev PORT=${PORT:-34034} cd "$(dirname "$0")" echo "== Fetching origin/$BRANCH ==" git fetch origin "$BRANCH" echo "== Forcing working copy to origin/$BRANCH (discards any local changes) ==" git reset --hard "origin/$BRANCH" # install deps only if package files changed since last run if [ package.json -nt .deploy-installed ] || [ package-lock.json -nt .deploy-installed ] || [ ! -f .deploy-installed ]; then echo "== Installing dependencies ==" npm install --no-audit --no-fund touch .deploy-installed else echo "== Dependencies unchanged, skipping npm install ==" fi # free the port if something is already on it if command -v fuser >/dev/null 2>&1; then fuser -k ${PORT}/tcp 2>/dev/null || true sleep 1 fi echo "== Starting server on port ${PORT} ==" PORT=${PORT} npm start