#!/bin/sh for n in "$@"; do case ${n%%=*} in data) _DATA="${n#data=}";; exec) _exec="${n#exec=}";; noerr) exec 2>&-;; esac; done [ -z "${_EXEC%/}" ] && _EXEC="$(realpath "${0%/*}")" || _EXEC="${_EXEC%/}" [ -z "${_DATA%/}" ] && _DATA=. || _DATA="${_DATA%/}" . "$_EXEC/cgilite/cgilite.sh" . "$_EXEC/cgilite/session.sh" _PATH="$(PATH "/${PATH_INFO}")" ACTION="$(GET a)" message="$(COOKIE message)" [ "$message" ] && SET_COOKIE 0 message='' yield_page() { local class="$1" style="$2" printf 'Content-Type: text/html; charset=utf-8\r\n\r\n' { printf ' [html [head [title Confetti] [meta name="viewport" content="width=device-width"] [link rel="stylesheet" type="text/css" href="/style.css"] ' [ -n "$style" ] && printf ' [link rel="stylesheet" type="text/css" href="%s"] ' "$style" printf ' ] [body class="%s" ' "$class" cat [ "$message" ] && printf '[p #message\n%s\n]' $(l10n "$message") printf '] ]' } \ | "${_EXEC}/cgilite/html-sh.sed" } if [ -d "${_EXEC}/${_PATH}" -a -x "${_EXEC}/${_PATH}/main.cgi" ]; then . "${_EXEC}/${_PATH}/main.cgi" elif [ ! -d "${_EXEC}/${_PATH}" -a -x "${_EXEC}/${_PATH}" ]; then . "${_EXEC}/${_PATH}" elif [ ! -x "${_EXEC}/${_PATH}" -a -r "${_EXEC}/${_PATH}" ]; then . "$_EXEC/cgilite/file.sh" FILE "${_EXEC}/${_PATH}" else printf 'Status: 404 Not Found\r\nContent-Length: 0\r\n\r\n' fi