18 lines
547 B
Bash
Executable file
18 lines
547 B
Bash
Executable file
#!/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
|