aboutsummaryrefslogtreecommitdiff
path: root/trunk/lib/common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/lib/common.sh')
-rw-r--r--trunk/lib/common.sh36
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