X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=cards%2Flist.sh;h=677519113d01e96c6a4c75c8ea0db260d2ebbc70;hp=8b911fb88e9bf63583d75702c79efccdeea81020;hb=e090b8bd26739537e895d60b931f82b64d8db6c4;hpb=3529f64e15cc4fa5e53e6d58a74cd20a09a29c7f diff --git a/cards/list.sh b/cards/list.sh index 8b911fb..6775191 100755 --- a/cards/list.sh +++ b/cards/list.sh @@ -6,21 +6,17 @@ unescape() { [ $# = 0 ] && sed -E 's;\\(.);\1;g' || printf %s "$*" |sed -E 's;\\ upcase=' y;abcdefghijklmnopqrstuvwxyzäöüé;ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜÉ;; ' card_fullname(){ - local card="$1" n1 n2 n3 n4 n5 + local card="$1" N n1 n2 n3 n4 n5 - local N="$(pdi_value "$card" N)" - local FN="$(pdi_value "$card" FN)" - local NICKNAME="$(pdi_value "$card" NICKNAME)" - - if [ "$FN" ]; then - printf %s "$FN" - elif [ "$N" ]; then + if pdi_value "$card" FN; then + return + elif N="$(pdi_value "$card" N)"; then IFS=\; read n1 n2 n3 n4 n5 <<-EOF $(pdi_value "$card" N) EOF printf '%s %s %s %s %s' "$n4" "$n2" "$n3" "$n1" "$n5" - elif [ "$NICKNAME" ]; then - printf '"%s"' "$NICKNAME" + else + pdi_value "$card" NICKNAME fi } @@ -154,8 +150,32 @@ filter_cards(){ '"$upcase""$fex" } +order_cards() { + local cardfile card + echo ORDER $order >&2 + + while read cardfile; do + card="$(pdi_load "$cardfile")" + + case $order in + firstname) + printf '%s %s\n' "$(card_fullname "$card")" "$cardfile" + ;; + lastname) + printf '%s %s\n' "$(pdi_value "$card" N || card_fullname "$card")" "$cardfile" + ;; + bdate) + printf '%s %s\n' "$(pdi_value "$card" BDAY || printf 0000-00-00)" "$cardfile" + ;; + esac + done \ + | sort \ + | sed -E 's;^.*\t;;g' +} + list_cards(){ filter_cards \ + | order_cards \ | while read cardfile; do print_card "$cardfile" done