]> git.plutz.net Git - lobster/commitdiff
date sanitizing, cache invalidation
authorPaul Hänsch <paul@plutz.net>
Thu, 9 Jan 2020 03:05:32 +0000 (04:05 +0100)
committerPaul Hänsch <paul@plutz.net>
Thu, 9 Jan 2020 03:05:32 +0000 (04:05 +0100)
therapies/update_therapy.sh

index ec8ccdc0878128c43a27872cecfcd26b1bcdf60f..406f4f983ca809d53bb94e13c2f559bc36440869 100755 (executable)
@@ -26,7 +26,40 @@ tempfile="$_DATA/temp/${tpy}.tpy"
 
 # serialize POST array into file
 for key in $(POST_KEYS); do
-  [ "$key" != imagedata ] && printf %s:%s\\n "$key" "$(POST "$key" |sed ':X;N;$!bX; s;\n;\\n;g;')"
+  case "$key" in
+    imagedata) true ;;
+    session*_date)
+      value="$(POST "$key" |sed ':X;N;$!bX; s;\n;\\n;g;')"
+      y=0 mon=0 dom=0
+      case $value in
+        *.*.*) IFS=. read dom mon y <<-END
+               ${value}
+               END
+          ;;
+        *.*.) IFS=. read dom mon <<-END
+               ${value}
+               END
+          ;;
+        */*/*) IFS=/ read mon dom y <<-END
+               ${value}
+               END
+          ;;
+        */*) IFS=/ read mon dom <<-END
+               ${value}
+               END
+          ;;
+        *-*-*) IFS=- read y mon dom <<-END
+               ${value}
+               END
+          ;;
+      esac
+      [ ! "$y" ] && y="$(date +%Y)"
+      [ "$y" -gt 0 -a "$y" -lt 100 ] && y="$((y + 2000))"
+      date -d "${y}-${mon}-${dom}" + && printf %s:%s\\n "$key" "$(date -d "${y}-${mon}-${dom}" +%F)" \
+                                     || printf %s:\\n "$key"
+      ;;
+    *) printf %s:%s\\n "$key" "$(POST "$key" |sed ':X;N;$!bX; s;\n;\\n;g;')" ;;
+  esac
 done >"$tempfile"
 
 if [ "$(POST delete_session)" ]; then
@@ -65,5 +98,6 @@ elif [ "$(POST imagedata)" ]; then
 fi
 
 mv "$tempfile" "$tpyfile"
+rm -f "${_DATA}/cache/${tpy%%.*}.vcf.cache"
 
 REDIRECT "/therapies/${tpy%.*}/${tpy#*.}"