EOF
}
-tid(){
- # transaction ID to modify a given file
- local file="$1"
- { stat -c %F%i%n%N%s%Y "$file" 2>&-
- printf %s "$SESSION_ID"
- server_key
- } | sha256sum | cut -d\ -f1
-}
+info="$(PATH "${PATH_INFO#http://*/}")"
-info="$(PATH "${PATH_INFO}")"
+which git && [ ! -d .git ] && {
+ git init
+ mkdir -p clients/ invoices/ senders/
+ printf 'export/
+serverkey' >.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)
+ /clients|/clients/)
. "$_EXEC/clients.sh"
{ list_clients
printf '[a .new href="/clients/%s" New]' "$(timeid)"
. "$_EXEC/clients.sh"
update_client
;;
- /senders)
+ /senders|/senders/)
. "$_EXEC/senders.sh"
{ list_senders
printf '[a .new href="/senders/%s" New]' "$(timeid)"
. "$_EXEC/senders.sh"
update_sender
;;
- /invoices)
+ /invoices|/invoices/)
. "$_EXEC/invoices.sh"
- { list_invoices
- printf '[a .new href="/invoices/%s" New]' "$(timeid)"
+ { printf '[a .new href="/invoices/%s" New]' "$(timeid)"
+ list_invoices
} | yield_page invoices
;;
/invoices/*)
. "$_EXEC/invoices.sh"
update_invoice
;;
+ /export/*.pdf/*)
+ . "$_EXEC/cgilite/file.sh"
+ file="${info%/*}"
+ FILE "${file#/}" application/pdf
+ ;;
*) REDIRECT /invoices
;;
esac