#!/bin/sh

KEYS="$(sed -n 's/.*local-user\ *//p' ~/.gnupg/gpg.conf | head -n1)"

for KEYID in $KEYS ; do

	COMMAND="echo update-gpg-expiry | mail -s 'update gpg expiry' pabs"
	COMMANDDEB="echo update-gpg-expiry | mail -s 'update gpg expiry' pabs@debian.org"

	printf "Updating the gpg expiry for %s:\nexpire\n6m\ny\nkey 1\nexpire\n6m\ny\nsave\n\n" "$KEYID"
	gpg --edit-key "$KEYID"

	# Send the key to the network
	gpg --send-keys "$KEYID"
	gpg --keyserver hkps://pgpkeys.eu --send-keys "$KEYID"
	gpg --keyserver hkps://pgp.pm --send-keys "$KEYID"
	gpg --keyserver hkps://pgp.net.nz/ --send-keys "$KEYID"
	gpg --keyserver hkps://the.earth.li --send-keys "$KEYID"
	gpg --keyserver hkps://pgp.mit.edu --send-keys "$KEYID"
	gpg --keyserver hkps://pgp.surf.nl --send-keys "$KEYID"
	gpg --keyserver hkps://keys.openpgp.org --send-keys "$KEYID"
	gpg --keyserver subkeys.pgp.net --send-keys "$KEYID"
	gpg --keyserver hkps://keyserver.ubuntu.com/ --send-keys "$KEYID"
	#gpg --keyserver keys.indymedia.org --send-keys "$KEYID"
	gpg --keyserver hkps://keyring.debian.org --send-keys "$KEYID"
	gpg --keyserver hkps://keys.gnupg.net --send-keys "$KEYID"
	gpg --keyserver hkps://keys.mailvelope.com --send-keys "$KEYID"
done

# Send the key to Debian servers that do not have dirmngr
gpg --armor --export-options export-minimal --export '610B 28B5 5CFC FE45 EA1B  563B 3116 BA5E 9FFA 69A3' | ssh master.debian.org gpg --import

DATE="$(date --iso-8601 -d '3 months')"
while true; do
	echo "Enter the date when you want a reminder (try $DATE)"
	read -r DATE

	test "x$DATE" = xquit && exit
	test "x$DATE" != x && date -d "$DATE" > /dev/null && break
done

# Switch to home directory so at doesn't get errors later
cd ~ || exit 0

# Schedule some reminders
echo "$COMMAND" | at "$DATE"
#echo "$COMMANDDEB" | ssh axxs.org at $DATE
echo "$COMMANDDEB" | ssh master.debian.org at \'"$DATE"\'

echo "PLEASE UPDATE DSA KEYRING: cd ~/devel/debian/admin/passwords ; pws update-keyring"
