multiple logical fixes in vcard updater
[confetti] / actions / update_attendee.sh
1 #!/bin/zsh
2
3 cgi_post
4
5 card="$_POST[\"card\"]"
6 tempfile="temp/$card"
7 cardfile="vcard/$card"
8
9 echo "BEGIN:VCARD\r" >"$tempfile"
10 echo "VERSION:4.0\r" >>"$tempfile"
11 echo "N:$_POST[\"0N\"];$_POST[\"1N\"];$_POST[\"2N\"];$_POST[\"3N\"];$_POST[\"4N\"]\r" >>"$tempfile"
12 echo "UID:$_POST[\"UID\"]\r" >>"$tempfile"
13 for field in $VCF_FIELDS; do
14   value="$_POST[\"$field\"]"
15   n=0
16   while [ -n "$value" ]; do
17     echo "${field}:${value}\r"
18     value="$_POST[\"$field$n\"]"
19     n=$(($n + 1))
20   done
21 done >>"$tempfile"
22
23 case "$_POST[\"action\"]" in
24   addfield)
25     echo "$_POST[\"newfield\"]:\r" >>"$tempfile"
26     echo "END:VCARD\r" >>"$tempfile"
27     echo -n "Location: http://$HTTP_HOST/?page=attendees&edit=$card#$card\n\n"
28     ;;
29   update)
30     echo "END:VCARD\r" >>"$tempfile"
31     mv "$tempfile" "$cardfile"
32     echo -n "Location: http://$HTTP_HOST/?page=attendees#$card\n\n"
33     ;;
34   cancel)
35     rm "$tempfile"
36     echo -n "Location: http://$HTTP_HOST/?page=attendees#$card\n\n"
37     ;;
38 esac