diff options
Diffstat (limited to 'trunk/lib/common.sh')
-rw-r--r-- | trunk/lib/common.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh index cc63bc6..c3b09d6 100644 --- a/trunk/lib/common.sh +++ b/trunk/lib/common.sh @@ -1686,6 +1686,42 @@ function get_sign_user { } +function update_keyring { + + # update keyring using GPG-KEY from a repository + # usage: update_keyring <keyfile> + + local keyring keys key + + keyring="$1" + + if [ ! -e "$keyring" ]; then + repo_gpg_key $MKBUILDS_DIR + return + fi + + keys="`gpg --with-colons $keyring | cut -d : -f 5 | sed -e '/^$/d'`" + + for key in $keys; do + if [ ! -z "$SIGN_USER" ] && [ "`whoami`" != "$SIGN_USER" ]; then + su $SIGN_USER -c "gpg --list-keys $key &> /dev/null" + if [ "$?" != "0" ]; then + echo "Updating keyring using $keyring..." + su $SIGN_USER -c "gpg --import $keyring" + break + fi + else + gpg --list-keys $key &> /dev/null + if [ "$?" != "0" ]; then + echo "Updating keyring using $keyring..." + gpg --import $keyring + break + fi + fi + done + +} + function rmd160sum { # computes RIPEMD-160 message digest |