#! /bin/sh # vim:set fdm=marker: set -euf Server=htgen ## parse arguments {{{ action=handle_request verbose=${HTGEN_VERBOSE-false} while test $# -gt 0; do case $1 in --serve) action=serve; shift; continue;; --verbose) verbose=true; shift; continue;; *) echo "$0: error: bad argument: $1" >&2; exit 1;; esac done ## }}} ## dispatch on $action {{ case $action in handle_request) : # fall through for handling the request ;; serve) HTGEN_HOST=${HTGEN_HOST-0.0.0.0} HTGEN_PORT=${HTGEN_PORT-42380} HTGEN_SCRIPT=${HTGEN_SCRIPT-:} HTGEN_VERBOSE=$verbose; export HTGEN_VERBOSE TCPSERVER_OPTS='-c 423 -t 2 -D' echo "#### $Server $HTGEN_HOST:$HTGEN_PORT" >&2 exec tcpserver $TCPSERVER_OPTS "$HTGEN_HOST" "$HTGEN_PORT" "$0" ;; *) echo "$0: error: bad action: $action" >&2 exit 2 ;; esac ## }}} ## reply_404 {{{ reply_404() { cat<&2 <&2 # cat>&2<&2 <&2 fi export "$k=$v" ;; esac done unset k v echo >&2 ## }}} eval "$HTGEN_SCRIPT" reply_404