#! /bin/sh

if [ -n "$EMAIL" ]; then
	FROM="$EMAIL"
else
	if [ -z "$USER" ]; then
		FROMUSER=`whoami`
	else
		FROMUSER="$USER"
	fi
	FROM="${FROMUSER}@`hostname --fqdn`"
fi

FAILKEYS=

while [ -n "$1" ]; do
	echo -n "[$1] "
	TEMPFILE=`mktemp /tmp/gpg2mail.XXXXXX`
	ADDR=`gpg --with-colons --fixed-list-mode --list-key $1 | sed -e 's/^uid:[^re][^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:<]*<[^:>]*>\):.*/@@uid@@ \1/' -e '/^@@uid@@ /!d' -e 's/([^)]*)//g' -e 's/  */ /g' -e 's/^@@uid@@ //' | head -1`
	if [ -z "$ADDR" ]; then
		echo "(no usable user ids)"
		FAILKEYS="$FAILKEYS:$1"
		shift 1
		continue
	fi
	NAME=`getent passwd $USER | cut -d: -f5 | cut -d, -f1`
	echo -n "$ADDR:"
	echo  >$TEMPFILE "From: $NAME <$FROM>"
	echo >>$TEMPFILE "To: $ADDR"
	echo >>$TEMPFILE "Subject: Your signed GPG key"
	echo >>$TEMPFILE
	echo >>$TEMPFILE "Hi,"
	echo >>$TEMPFILE
	echo >>$TEMPFILE "here is your signed GPG key."
	echo >>$TEMPFILE
	echo >>$TEMPFILE "Enjoy,"
	echo $NAME | cut -d\  -f1 >>$TEMPFILE
	echo >>$TEMPFILE
	gpg --armor --export $1 >>$TEMPFILE
	echo -n " sending"
	/usr/sbin/sendmail -t <$TEMPFILE
	rm $TEMPFILE
	echo " done."
	shift 1
done

if [ -n "$FAILKEYS" ]; then
	echo
	echo "Note: The following keys could not be sent:"
	echo "$FAILKEYS" | tr ':' '\n' | sed -e '/^ *$/d' -e 's/^/  /'
fi
