#!/bin/sh _EXEC="$(realpath "${0%/*}")" . "$_EXEC/cgilite/cgilite.sh" . "$_EXEC/cgilite/logging.sh" . "$_EXEC/cgilite/storage.sh" . "$_EXEC/cgilite/session.sh" yield_page(){ printf 'Content-Type: text/html; charset=utf-8\r\n\r\n' "$_EXEC/cgilite/html-sh.sed" <&- printf %s "$SESSION_ID" server_key } | sha256sum | cut -d\ -f1 } info="$(PATH "${PATH_INFO}")" case $info in /invoices.css) . "$_EXEC/cgilite/file.sh" FILE "$_EXEC/invoices.css" ;; /clients) . "$_EXEC/clients.sh" { list_clients printf '[a .new href="/clients/%s" New]' "$(timeid)" } | yield_page clients ;; /clients/*) . "$_EXEC/clients.sh" edit_client "${info#/clients/}" |yield_page client ;; /update_client) . "$_EXEC/clients.sh" update_client ;; /senders) . "$_EXEC/senders.sh" { list_senders printf '[a .new href="/senders/%s" New]' "$(timeid)" } | yield_page senders ;; /senders/*) . "$_EXEC/senders.sh" edit_sender "${info#/senders/}" |yield_page sender ;; /update_sender) . "$_EXEC/senders.sh" update_sender ;; /invoices) . "$_EXEC/invoices.sh" { list_invoices printf '[a .new href="/invoices/%s" New]' "$(timeid)" } | yield_page invoices ;; /invoices/*) . "$_EXEC/invoices.sh" edit_invoice "${info#/invoices/}" |yield_page invoice ;; /update_invoice) . "$_EXEC/invoices.sh" update_invoice ;; *) REDIRECT /invoices ;; esac