Merge commit '36d5feed172cb12ccd469abddebf04eaf9a7c9ae' as 'cgilite'
[confetti] / cards / new_card.sh
1 #!/bin/zsh
2
3 # Copyright 2014, 2019 Paul Hänsch
4 #
5 # This file is part of Confetti.
6
7 # Confetti is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU Affero General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
11
12 # Confetti is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU Affero General Public License for more details.
16
17 # You should have received a copy of the GNU Affero General Public License
18 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
19
20 filter="$(REF f)"
21 order="$(REF o)"
22
23 uid="$(timeid)$(randomid)"  # 32 Octets UID, starting with timestamp
24 card="${uid}.vcf"
25
26 mkdir -p "${_DATA}/lock/vcard/"
27 lockdir="${_DATA}/lock/vcard/${card}/"
28 lockfile=${lockdir}/${SESSION_ID}
29
30 if mkdir "$lockdir"; then
31   cat >"$lockfile" <<-EOF
32         BEGIN:VCARD
33         VERSION:4.0
34         N:;;;;
35         BDAY:
36         TEL:
37         EMAIL:
38         ADR:
39         NOTE:
40         UID:${uid}
41         END:VCARD
42         EOF
43   REDIRECT "/cards/?o=${order}&f=${filter}&e=${card}"
44 else
45   SET_COOKIE session message="EDITLOCK"
46   REDIRECT "/cards/?o=${order}&f=${filter}"
47 fi