diff --git a/en_US.ISO8859-1/books/handbook/pgpkeys/addkey.sh b/en_US.ISO8859-1/books/handbook/pgpkeys/addkey.sh new file mode 100644 index 0000000000..d88d91fe5f --- /dev/null +++ b/en_US.ISO8859-1/books/handbook/pgpkeys/addkey.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +me="$1" +if [ -z "${me}" ]; then + me=$(id -nu) +else + shift +fi + +id="$@" +if [ -z "${id}" ]; then + id="${me}@freebsd.org" +fi + +gpg=$(which gpg) +if [ ! -x "${gpg}" ]; then + echo "GnuPG does not seem to be installed" >/dev/stderr + exit 1 +fi + +echo "Retrieving key..." +keylist=$(gpg --list-keys ${id}) +echo "${keylist}" | grep '^pub' +id=$(echo "${keylist}" | awk '/^pub/ { print $2 }' | sed 's%.*/%%' | sort -u) +id=$(echo $id) +if [ "${#id}" -lt 8 ]; then + echo "Invalid key ID." >/dev/stderr + exit 1 +elif [ "${#id}" -gt 8 ]; then + echo "WARNING: Multiple keys; exporting all. If this is not what you want," >/dev/stderr + echo "WARNING: you should specify a key ID on the command line." >/dev/stderr +fi +fp=$(gpg --fingerprint ${id}) +[ $? -eq 0 ] || exit 1 +key=$(gpg --armor --export ${id}) +[ $? -eq 0 ] || exit 1 + +keyfile="${me}.key" +echo "Generating ${keyfile}..." +( + echo '' + echo '' + echo '' + echo '' +) >"${keyfile}" + +echo "Adding key to entity list..." +mv pgpkeys.ent pgpkeys.ent.orig || exit 1 +( + cat pgpkeys.ent.orig + printf '' 16 "${me}" "${keyfile}" +) | sort -u >pgpkeys.ent + +echo +echo "Unless you are already listed there, you should now add the" +echo "following text to chapter.sgml in the appropriate position in" +echo "the developer section (unless this is a role key or you are a" +echo "core member.) Remember to keep the list sorted by last name!" +echo +echo " " +echo " &a.${me};" +echo " &pgpkey.${me};" +echo " " +echo +echo "Don't forget to 'cvs add ${keyfile}' if this is a new entry," +echo "and check your diffs before committing!"