X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhsign.sh;h=9d6c747ee059bac1e655b4fd5632671d5b2da4c4;hp=9a060532e2ef4c23d48ab044b67625858090edb1;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=f36530fd658fd2ccfac328c5097f7b44712eceac diff --git a/uip/mhsign.sh b/uip/mhsign.sh index 9a06053..9d6c747 100755 --- a/uip/mhsign.sh +++ b/uip/mhsign.sh @@ -9,7 +9,7 @@ # will be removed and any "From " line will be indented for # best compatibility. Enforced for multipart messages. -usage="Usage: mhsign [-encrypt] [-mime] file" +usage="Usage: mhsign [-encrypt] [-mime] [-Version] [-help] file" # defaults usemime=n @@ -23,7 +23,12 @@ if [ -z "$userid" ] ; then fi if [ -z "$userid" ] ; then userid="`gpg --list-secret-keys --with-colons 2>/dev/null | - sed -n '/^sec/{p;q;}' | cut -d: -f5`" + grep '^sec' | sort -t: -k3,3nr -k 6,6nr | + awk -F: ' + $7=="" || $7 > "'"\`date +%Y-%m-%d\`"'" { + print $5; exit; + } + '`" fi if [ -z "$userid" ] ; then echo "No secret key found" >&2 @@ -91,7 +96,7 @@ lookupkeyring() { if [ $? != 0 ] ; then return 1 fi - echo "$key" | sed -n '/^pub/{p;q;}' | cut -d: -f5 + echo "$key" | sed -n '/^pub:[^idre]:/{p;q;}' | cut -d: -f5 return 0 } @@ -103,8 +108,13 @@ lookupkeys() { echo "Encryption is not supported for BCCs" >&2 return 1 fi - - for i in `whom -ali -tocc -nobcc "$1"` ; 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 ;;