#!/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" <.gitignore git add clients/ invoices/ senders/ .gitignore git commit -m 'initialisation of invoice repo' } >&2 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" { printf '[a .new href="/invoices/%s" New]' "$(timeid)" list_invoices } | yield_page invoices ;; /invoices/*) . "$_EXEC/invoices.sh" edit_invoice "${info#/invoices/}" |yield_page invoice ;; /update_invoice) . "$_EXEC/invoices.sh" update_invoice ;; /export/*.pdf/*) . "$_EXEC/cgilite/file.sh" file="${info%/*}" FILE "${file#/}" application/pdf ;; *) REDIRECT /invoices ;; esac