#!/usr/bin/env bash # Required Binaries: # | simple-http-server # | sass # ===== Configuration ===== # ADDR="127.0.0.1" # 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[@]}"