Files
dotfiles/utils/.local/bin/serve
2026-02-21 18:10:09 +08:00

37 lines
813 B
Bash
Executable File

#!/usr/bin/env bash
set -eo pipefail
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
cat <<EOF
Usage: $(basename "$0") [-h] [port]
Start a simple HTTP server in current directory.
Options:
-h, --help Show this help message
Arguments:
port Port number (default: 8888)
EOF
exit 0
fi
port="${1:-8888}"
if hash php 2>/dev/null; then
exec php -S "localhost:$port"
elif hash python3 2>/dev/null; then
exec python3 -m http.server "$port"
elif hash python 2>/dev/null; then
major_version="$(python -c 'import platform as p;print(p.python_version_tuple()[0])')"
if [[ "$major_version" == '3' ]]; then
exec python -m http.server "$port"
else
exec python -m SimpleHTTPServer "$port"
fi
else
echo 'unable to start HTTP server' 1>&2
exit 1
fi