X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhsign.sh;h=39a3f690d5dd4c27f66b9a11f01fd5a031fa9b9f;hp=f28c0fecef5c976a910dc1c80d8da145b83e2189;hb=ee8d01d64e8832304256de53db07228e2be67f6a;hpb=370cd86e50f3348d7ee0cc4a265764d002b15cdc diff --git a/uip/mhsign.sh b/uip/mhsign.sh index f28c0fe..39a3f69 100755 --- a/uip/mhsign.sh +++ b/uip/mhsign.sh @@ -22,10 +22,11 @@ if [ -z "$userid" ] ; then userid="`mhparam pgpkey`" fi if [ -z "$userid" ] ; then - userid="`gpg --list-secret-keys --with-colons 2>/dev/null | + userid="`gpg --list-secret-keys --with-colons --fixed-list-mode \ + 2>/dev/null | grep '^sec' | sort -t: -k3,3nr -k 6,6nr | awk -F: ' - $7=="" || $7 > "'"\`date +%Y-%m-%d\`"'" { + $7=="" || $7 > "'"\`date +%s\`"'" { print $5; exit; } '`" @@ -109,16 +110,18 @@ lookupkeys() { return 1 fi - whom -ali -tocc -nobcc "$1" | while read i ; do + # extract the actual address + format='%<{error}%{error}: %{text}%|%(addr{text})%>' + addresses=`whom -ali -tocc -nobcc "$1" |sed 's_$_,_'` + addresses=`%libdir%/ap -form "=$format" "$addresses"` + + for i in $addresses ; do case "$i" in '|'*) echo "Ignoring pipe address" >&2 continue ;; *@*) ;; *) i="$i@`hostname -f`" ;; esac - # extract the actual address - format='%<{error}%{error}: %{text}%|%(addr{text})%>' - i=`%libdir%/ap -form "=$format" "$i"` if k=`lookupkeyfile "$i"` ; then KL="$KL $k" elif k=`lookupkeyring "$i"` ; then