summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcollect-tos-for-alpine-addressbook41
1 files changed, 41 insertions, 0 deletions
diff --git a/collect-tos-for-alpine-addressbook b/collect-tos-for-alpine-addressbook
new file mode 100755
index 0000000..937642c
--- /dev/null
+++ b/collect-tos-for-alpine-addressbook
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+sed '
+ :a
+ N
+ s/\n\s\+/ /
+ ta
+ P
+ D
+' tmp/header \
+| sed -n '
+ s@^\(bcc\|Bcc\|BCC\|cc\|Cc\|CC\|To\|Reply-To\): @@
+ T
+ :b
+ s@^\(\([^"]*"[^"]*"\)*[^"]*\),\s\+@\1\n@g
+ tb
+ p
+' \
+| sed '
+ s#^\(.*\S\)\s*<\(\S\+@\S\+\)>$#\2 \1#
+ t
+ /^\S\+@\S\+$/!d
+' \
+| sort -uf \
+| while read -r email comment; do
+ printf '%s %s %s\n' \
+ "${#comment}" \
+ "$(echo "$comment" | base64 -w0)" \
+ "${email}"
+done \
+| sort -k3,3 -k1nr,1 \
+| uniq -f2 \
+| while read -r _ comment email; do
+ printf '\t%s\t%s\n' \
+ "$(
+ printf '%s\n' "${comment}" \
+ | base64 -d \
+ | sed 's@^\(["'"'"']\)\(.*\)\1@\2@'
+ )" \
+ "${email}"
+done