dobutterfliescry.net/serve

59 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Required Binaries:
# | simple-http-server
# | sass
# ===== Configuration ===== #
ADDR="127.0.01" # bind address
PORT="8000" # bind port
WEBROOT="www" # root web directory
USE_INDEX=true
NO_CACHE=true
declare -a SRV_ARGS=()
SCSS_PATH="$WEBROOT/scss"
CSS_PATH="$WEBROOT/css"
# ========================= #
# ===== Local State ===== #
SASS_PID=
# ======================= #
function cleanup {
if [[ -n "$SASS_PID" ]]; then
kill "$SASS_PID"
fi
}
# Watch .sass/.scss files and compile on change
function watch_scss {
# watch format "SCSS_PATH:OUT_PATH"
sass --watch "$SCSS_PATH:$CSS_PATH"
}
function host {
local args=$@
# Apply Flags
if [[ "$NO_CACHE" == true ]]; then
args+=("--nocache")
fi
if [[ "$USE_INDEX" == true ]]; then
args+=("--index")
fi
# Apply Options
args+=(--ip "$ADDR" --port "$PORT")
simple-http-server $args $@ -- "$WEBROOT"
}
trap cleanup EXIT
set -ueo pipefail
set -x
# auto compile scss changes
watch_scss &
SASS_PID=$!
# host dev server
host ${SRV_ARGS[@]}