dotfiles/scripts/bin/serveit

30 lines
810 B
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# Script Name: serveit
# Description: Quick static file server on localhost
# Source: https://evanhahn.com/scripts-i-wrote-that-i-use-all-the-time/
# Usage: serveit [port] # defaults to 8000
port='8000'
if [[ $# -eq 1 ]]; then
port="$1"
fi
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
elif hash ruby 2>/dev/null; then
exec ruby -run -e httpd . -p "$port"
else
echo 'unable to start HTTP server' >&2
exit 1
fi