#!/bin/sh --

umask 077

VALIDITIES="`mktemp ${TMPDIR-/tmp}/validities.$$.XXXXXX`" || exit 1
trap "/bin/rm -f $VALIDITIES ; trap '' 0; exit" 0 1 2 3 4

gpg --list-keys --with-colon 2> /dev/null | awk -F: '
	function comp_val (c)
	{
		if (c ~ /n/)
			return 1;
		if (c ~ /m/)
			return 2;
		if (c ~ /f/)
			return 3;
		if (c ~ /u/)
			return 3;

		return 0;
	}

	BEGIN {
		keyid="";
		validity="";
		ownertrust="";
		have_key = 0;
	}
	
	($1 == "pub") {
		if (have_key && validity >= 2 && ownertrust ~ /[q-]/)
			printf ("%s\t%s\t%s\n", validity, ownertrust, keyid);
		if ($2 ~ /u/)
			ownertrust=f;
		else
			ownertrust=$9;
		keyid=$5;
		validity=comp_val($2);
		have_key=1;
	}
	
	($1 == "uid") {
		if (comp_val($2) > validity)
			validity=comp_val($2);
	}
	
	END {
		if (have_key && validity >= 2)
			printf ("%s\t%s\t%s\n", validity, ownertrust, keyid);
	}
	'  > $VALIDITIES

cat $VALIDITIES | while read validity ownertrust keyid ; do
	gpg --edit $keyid
done


