| #!/bin/sh | |
| PORT=3000 | |
| counter=0 | |
| watchdog=5 | |
| check_and_set_port() { | |
| if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null && [ "$counter" -lt $watchdog ]; then | |
| echo "port $PORT already occupied, changing to the next consecutive port" | |
| PORT=$(PORT+1) | |
| counter=$((counter+1)) | |
| check_and_set_next_port | |
| elif [ "$counter" -ge $watchdog ]; then | |
| echo "\033[31mUnable to allocate an empty port for NextJS, the last tried port was $NEXTJS_PORT\e[0m" | |
| echo "Please either change the $PORT to an other random number/unused port number" | |
| echo "After changes re-run the script" | |
| exit 1 | |
| else | |
| printf "🚀 An empty port found for DevLake Docs 🚀 \n" | |
| fi | |
| } | |
| check_and_set_port | |
| export PORT=$PORT | |
| yarn start |