]> git.plutz.net Git - confetti/blobdiff - cards/list.sh
omit fullname function (which is now in pdi_load)
[confetti] / cards / list.sh
index 8b911fb88e9bf63583d75702c79efccdeea81020..2cdfcbce6f538bd3fe0ee33c21e71b3892a30ffc 100755 (executable)
@@ -5,26 +5,6 @@
 unescape() { [ $# = 0 ] && sed -E 's;\\(.);\1;g' || printf %s "$*" |sed -E 's;\\(.);\1;g'; }
 upcase=' y;abcdefghijklmnopqrstuvwxyzäöüé;ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜÉ;; '
 
-card_fullname(){
-  local card="$1" 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
-    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"
-  fi
-}
-
-
 card_item(){
   local card="$1"
   local item cnt c
@@ -34,7 +14,7 @@ card_item(){
     cnt="$(pdi_count "$card" "$item")"
 
     case $item in
-      FN) printf '[h2 .item .FN &shy;%s]' "$(card_fullname "$card" |unescape |HTML)"
+      FN) printf '[h2 .item .FN &shy;%s]' "$(pdi_value "$card" FN |unescape |HTML)"
         ;;
       GENDER) printf '[span .item .GENDER &shy;%s]' "$(pdi_value "$card" GENDER |l10n)"
         ;;
@@ -154,8 +134,31 @@ filter_cards(){
              '"$upcase""$fex"
 }
 
+order_cards() {
+  local cardfile card
+
+  while read cardfile; do
+    card="$(pdi_load "$cardfile")"
+
+    case $order in
+      firstname)
+        printf '%s     %s\n' "$(pdi_value "$card" FN)" "$cardfile"
+        ;;
+      lastname)
+        printf '%s     %s\n' "$(pdi_value "$card" N || pdi_value "$card" FN)" "$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