X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=pages%2Fcategories.sh;fp=pages%2Fcategories.sh;h=88d78c22d4e982b345ca7f0d4fa861b058c670ba;hp=0000000000000000000000000000000000000000;hb=5414898a3baef825844eda3f4416bfea5ecc9555;hpb=8cd89ca352c63baf4655fc60952f27ec4a6e3408 diff --git a/pages/categories.sh b/pages/categories.sh new file mode 100755 index 0000000..88d78c2 --- /dev/null +++ b/pages/categories.sh @@ -0,0 +1,44 @@ +#!/bin/zsh + +# Copyright 2015 Paul Hänsch +# +# This file is part of Confetti. +# +# Confetti is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Confetti is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Confetti. If not, see . + +catfile="${_DATA}/mappings/categories" + +listcards() { + ls -1 ${_DATA}/vcard/*vcf 2>/dev/null |while read file; do + fn=$(sed -rn 's:^N(;.+)*\:([^;]*;){1} *([^;]*).*$:\3:p' "$file") + echo "$fn\t$file" + done |sort |sed -r 's:^.*\t(.*/)([^/]+)$:\2:' +} + +get_name() { + cfile="${_DATA}/vcard/$1" + sed -rn 's:^N(;[^"\:]+|;"[^"]+")*\:([^;]*)(\;[^;]*)(\;[^;]*)?(\;[^;]*)?(\;[^;]*)?\r?$:\5 \3 \4 \2 \6:p' "$cfile" \ + |sed -r 's:,: :;s:\;: :g;s: +: :g' \ +} + +get_categories(){ + cfile="${_DATA}/vcard/$1" + sed -rn 's:^CATEGORIES(;[^"\:]+|;"[^"]+")*\:(.+)\r?$:\2:p' "$cfile" \ + | sed -r 's;(^|[^\\]+)((\\\\)+),;\1\2\n;g; s;(^|[^\\]),;\1\n;g; s;(^|[^\\]+)((\\\\)+),;\1\2\n;g; s;(^|[^\\]),;\1\n;g; s;\\,;,;g' \ + | sort -u +} + +list_categories() { + sort -u "$catfile" +}