From 2ee69281c814ad6ab91edece2a6de39b13072d2f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Sat, 5 Apr 2025 12:05:13 +0200 Subject: [PATCH] switch to cgilite implementation of db23 --- db23.sh | 97 ------------------------------------------------------- index.cgi | 2 +- 2 files changed, 1 insertion(+), 98 deletions(-) delete mode 100755 db23.sh diff --git a/db23.sh b/db23.sh deleted file mode 100755 index 6df2ccc..0000000 --- a/db23.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh - -. "$_EXEC/cgilite/storage.sh" - -DB2() { - local call data file key val seq - data="${BR}${1}${BR}" call="$2" - shift 2 - - case $call in - new|discard) - printf '' - ;; - open|load) file="$1" - cat "$file" || return 1 - ;; - check|contains) key="$(STRING "$1")" val='' - val="${data##*${BR}${key} }" val="${val%%${BR}*}" - [ "$val" = '' ] && return 1 - ;; - count) key="$(STRING "$1")" val='' seq=0 - val="${data##*${BR}${key} }" val="${val%%${BR}*}" - [ "$val" = '' ] || val="${val} " - while [ "$val" != '' ]; do - seq=$((seq + 1)) val="${val#* }" - done - printf "%i\n" "$seq" - [ $seq = 0 ] && return 1 - ;; - get) key="$(STRING "$1")" seq="${2:-1}" - val="${data##*${BR}${key} }" val="${val%%${BR}*}" - [ "$val" = '' ] && return 1 || val="${val} " - while [ $seq -gt 1 ]; do - seq=$((seq - 1)) val="${val#* }" - done - [ "$val" = '' ] && return 1 - UNSTRING "${val%% *}" - ;; - iterate|raw) key="$(STRING "$1")" - val="${data##*${BR}${key} }" val="${val%%${BR}*}" - [ "$val" = '' ] && return 1 - printf '%s\n' $val - ;; - delete|remove) key="$(STRING "$1")" - val="${data#*${BR}${key} *${BR}}" - key="${data%${BR}${key} *${BR}*}" - [ "${key}${BR}${val}" = "${data}" ] && return 1 - printf '%s' "${key#${BR}}${BR}${val%${BR}}" - ;; - set|store) key="$(STRING "$1")" val="" - shift 1 - val="$(for v in "$@"; do STRING "$v"; printf \\t; done)" - if [ "${data#*${BR}${key} *}" != "$data" ]; then - data="${data%${BR}${key} *${BR}*}${BR}${key} ${val% }${BR}${data#*${BR}${key} *${BR}}" - data="${data#${BR}}" data="${data%${BR}}" - else - data="${data#${BR}}${key} ${val% }${BR}" - data="${data#${BR}}" - fi - printf %s\\n "${data}" - ;; - append) key="$(STRING "$1")" val="" - val="${data##*${BR}${key} }" val="${val%%${BR}*}" - if [ "$val" = '' ]; then - printf %s\\n "${data}" - return 1 - else - shift 1 - val="${val}$(for v in "$@"; do printf \\t; STRING "$v"; done)" - data="${data%${BR}${key} *${BR}*}${BR}${key} ${val% }${BR}${data#*${BR}${key} *${BR}}" - data="${data#${BR}}" data="${data%${BR}}" - printf %s\\n "${data}" - fi - ;; - flush|save|write) file="$1" - data="${data#${BR}}" data="${data%${BR}}" - printf '%s\n' "$data" >"$file" || return 1 - ;; - esac - return 0 -} - -DB3() { - # wrapper function that allows easyer use of DB2 - # by always keeping file data in $db3_data - - case "$1" in - new|discard|open|load|delete|remove|set|store|append) - db3_data="$(DB2 "$db3_data" "$@")" - return "$?" - ;; - get|count|check|contains|iterate|raw|flush|save|write) - DB2 "$db3_data" "$@" - return "$?" - ;; - esac -} diff --git a/index.cgi b/index.cgi index 8fde919..b1bdfed 100755 --- a/index.cgi +++ b/index.cgi @@ -6,8 +6,8 @@ _EXEC="$(realpath "${0%/*}")" . "$_EXEC/cgilite/session.sh" . "$_EXEC/cgilite/storage.sh" . "$_EXEC/cgilite/file.sh" +. "$_EXEC/cgilite/db23.sh" -. "$_EXEC/db23.sh" . "$_EXEC/form.sh" cd "$_DATA" -- 2.39.5