#!/bin/zsh
-# Copyright 2015 Paul Hänsch
+# Copyright 2015, 2017 Paul Hänsch
#
# This file is part of Confetti.
#
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:'
+ for file in "${_DATA}/vcard/"*.vcf; do
+ printf '%s\t%s\n' \
+ "$(sed -rn 's:^N(;.+)*\:([^;]*;){1} *([^;]*).*$:\3:p' "$file")" \
+ "$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' \
+ sed -rn 's;^N(\;[^":]+|\;"[^"]+")*:([^\;]*)(\;[^\;]*)(\;[^\;]*)?(\;[^\;]*)?(\;[^\;]*)?\r?$;\5 \3 \4 \2 \6;;
+ tX; b; :X s;[,\; ]+; ;g; p;' "$cfile"
}
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' \
+ sed -rn 's;^CATEGORIES(\;[^":]+|\;"[^"]+")*:(.+)\r?$;\2;;
+ tX; b; :X
+ s;(^|[^\\]+)((\\\\)+),;\1\2\n;g;
+ s;(^|[^\\]),;\1\n;g; s;(^|[^\\]+)((\\\\)+),;\1\2\n;g;
+ s;(^|[^\\]),;\1\n;g; s;\\,;,;g; p;' "$cfile" \
| sort -u
}
list_categories() {
- sort -u "$catfile"
+ sort -u "$catfile" \
+ | sed -r '/^[\t ]*$/d'
}