#!/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
