From eceeb76eacf3cfbbaa7e9cb1bfbf5141c418901b Mon Sep 17 00:00:00 2001 From: overflowerror Date: Thu, 13 Jan 2022 22:00:25 +0100 Subject: [PATCH] added session value support --- demo.sh | 4 ++-- sessions.sh | 22 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/demo.sh b/demo.sh index 5b69f75..21e194b 100755 --- a/demo.sh +++ b/demo.sh @@ -29,10 +29,10 @@ session() { value="$(queryString "val")" if test ! -z "$value"; then - setSession "$value" + setSessionValue "val" "$value" echo "saved to session" else - getSession + getSessionValue "val" fi } diff --git a/sessions.sh b/sessions.sh index 3e1f3d3..4de1aa9 100644 --- a/sessions.sh +++ b/sessions.sh @@ -67,12 +67,30 @@ startSession() { fi } -getSession() { +getSessionRaw() { _getSession "$(_getSessionId)" | tail -n +2 } -setSession() { +setSessionRaw() { if _hasSession; then echo "$1" | cat <(_getSessionDate) - > "$(_makeSessionPath "$(_getSessionId)")" fi } + +getSessionValue() { + key="$1" + getSessionRaw | grep -e "^$key=" | cut -d= -f2 +} + +setSessionValue() { + key="$1" + value="$2" + setSessionRaw "$( + getSessionRaw | while read entry; do + if test -z "$(echo "$entry" | grep -e "^$key=")"; then + echo "$entry" + fi + done + echo "$key=$value" + )" +}