]> git.plutz.net Git - confetti/blobdiff - ledgers/iban_assign.awk
date time helper
[confetti] / ledgers / iban_assign.awk
index 090d950bbfe513f974f6e051c45fdbce6a112791..0491617699a1989491e83bdd0ed718c65fa5c89e 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/awk -f
 
+function dbg( text ) { print text >>"/dev/stderr"; }
+
 function STRING( inp ) {
   gsub(/\\/, "\\\\", inp);
   gsub(/\n/, "\\n",  inp);
@@ -41,19 +43,18 @@ BEGIN {
 
 /^BEGIN;:VCARD$/ { fn = n = id = iban = tmp = ""; }
 
-   /^UID;[^:]*:/ { uid = $0; sub(/^[^;]+;[^:]*:/, "", uid); }
-    /^FN;[^:]*:/ {  fn = $0; sub(/^[^;]+;[^:]*:/, "",  fn); }
-     /^N;[^:]*:/ {   n = $0; sub(/^[^;]+;[^:]*:/, "",   n); sub(/;.*$/, "", n); }
-/^X-IBAN;[^:]*:/ { tmp = $0; sub(/^[^;]+;[^:]*:/, "", tmp); iban = iban ? iban " " tmp : tmp; }
+   /^UID;[^:]*:/ {  uid = $0; sub(/^[^;]+;[^:]*:/, "",  uid); }
+    /^FN;[^:]*:/ {   fn = $0; sub(/^[^;]+;[^:]*:/, "",   fn); }
+     /^N;[^:]*:/ {    n = $0; sub(/^[^;]+;[^:]*:/, "",    n); sub(/;.*$/, "", n); }
+/^X-IBAN;[^:]*:/ { iban = $0; sub(/^[^;]+;[^:]*:/, "", iban); ibans[length(ibans)] = iban; }
 
 /^END;:VCARD$/ {
   uid_n[uid] = n; uid_fn[uid] = fn; uid_iban[uid] = iban;
-  split(iban, ibans, / /);
-  for (iban in ibans) iban_uid[iban] = iban_uid[iban] ? iban_uid[iban] " " uid : uid;
-  fn = n = uid = iban = tmp = "";
+  for (iban in ibans) iban_uid[ibans[iban]] = iban_uid[ibans[iban]] ? iban_uid[ibans[iban]] " " uid : uid;
+  fn = n = uid = iban = tmp = ""; split("", ibans);
 }
 
-strftime("%Y-%m-%d", $1, "UTC") == $2 && strftime("%Y-%m-%d", $3, "UTC") == $4 { ledger = 1; }
+/^BEGIN:LEDGERS$/ { ledger = 1; }
 
 ledger && strftime("%Y-%m-%d", $2, "UTC") == $1 {
   if ($3 in iban_uid) {
@@ -72,12 +73,6 @@ ledger && strftime("%Y-%m-%d", $2, "UTC") == $1 {
 }
 
 END {
-  for (iban in sure) {
-    line = "sure       " iban;
-    split(iban_uid[iban], uids, / /);
-    for (uid in uids) line = line "    " STRING(uid "/" uid_fn[uid]);
-    print line;
-  }
   for (iban in unsure) {
     line = "guess      " iban " " STRING(unsure_rec[iban]);
     split(unsure[iban], uids, / /);
@@ -88,4 +83,10 @@ END {
     line = "unknown    " iban " " unknown[iban];
     print line;
   }
+  for (iban in sure) {
+    line = "sure       " iban;
+    split(sure[iban], uids, / /);
+    for (k in uids) line = line "      " STRING(uids[k] "/" uid_fn[uids[k]]);
+    print line;
+  }
 }