19 lines
547 B
Bash
19 lines
547 B
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
# Serve the NISPS playground, finding an open port if needed.
|
|||
|
|
|
|||
|
|
PORT="${1:-8000}"
|
|||
|
|
MAX_ATTEMPTS=20
|
|||
|
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
|||
|
|
|
|||
|
|
for ((i = 0; i < MAX_ATTEMPTS; i++)); do
|
|||
|
|
candidate=$((PORT + i))
|
|||
|
|
if ! ss -tlnp 2>/dev/null | grep -q ":${candidate} "; then
|
|||
|
|
echo "Serving playground at http://localhost:${candidate}"
|
|||
|
|
exec python3 -m http.server "$candidate" -d "$DIR"
|
|||
|
|
fi
|
|||
|
|
echo "Port ${candidate} in use, trying next..."
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
echo "No open port found in range ${PORT}–$((PORT + MAX_ATTEMPTS - 1))" >&2
|
|||
|
|
exit 1
|