]> git.plutz.net Git - confetti/blobdiff - actions/update_course.sh
locale independent regex ranges ([A-z] instead of [a-Z])
[confetti] / actions / update_course.sh
index e98892e8451bbb6777cdb1678db1aac8599caaee..a5ba8cee56ba68afb78ac0e817bd527fd80c00df 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/zsh
 
-# Copyright 2014 Paul Hänsch
+# Copyright 2014, 2015 Paul Hänsch
 #
 # This file is part of Confetti.
 # 
@@ -22,6 +22,7 @@ cgi_post
 course="${_POST[course]}"
 tempfile="temp/$course"
 coursefile="ical/$course"
+attfile="$_DATA/mappings/attendance"
 
 # DURATION:
 uid="${_POST[UID]}"
@@ -91,6 +92,21 @@ case "${_POST[action]}" in
     echo -n "Location: ?p=courses&edit=$course\n\n"
     ;;
   update)
+    attendance=()
+    for att in attendance attendance{0..100}; do
+      [ -n "${_POST[$att]}" ] && attendance+=("${_POST[$att]}")
+    done
+    sed -rn 's:^'$course'\t(.+)$:\1:p' "$attfile" |while read card; do
+      touch "$_DATA/vcard/$card"
+    done
+    sed -i -r '/^'$course'\t(.+)$/d' "$attfile"
+    for each in $attendance; do
+      echo "$course\t$each"
+    done >>"$attfile"
+    sed -rn 's:^'$course'\t(.+)$:\1:p' "$attfile" |while read card; do
+      touch "$_DATA/vcard/$card"
+    done
+
     echo "END:VEVENT\r" >>"$tempfile"
     echo "END:VCALENDAR\r" >>"$tempfile"
     mv "$tempfile" "$coursefile"