aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2009-01-07 20:31:53 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2009-01-07 20:31:53 +0000
commit91bf3fbd2eedd90410cc9bab13adc9cc929ee330 (patch)
tree23e3755a33971ff5099616104a5333b6a9d929bc
parentdf5f50c5f35d359a9ee4088c2467df3cab06d94b (diff)
downloadsimplepkg-91bf3fbd2eedd90410cc9bab13adc9cc929ee330.tar.gz
simplepkg-91bf3fbd2eedd90410cc9bab13adc9cc929ee330.tar.bz2
attempting to fix 49
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@739 04377dda-e619-0410-9926-eae83683ac58
-rw-r--r--trunk/lib/common.sh30
-rw-r--r--trunk/src/createpkg23
2 files changed, 38 insertions, 15 deletions
diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh
index d583a92..d61dbd9 100644
--- a/trunk/lib/common.sh
+++ b/trunk/lib/common.sh
@@ -1131,18 +1131,22 @@ function gen_meta {
function repo_gpg_key {
- # usage: repo_gpg_key <folder>
+ # usage: repo_gpg_key <folder> [update]
- local folder="$1" tmp_gpg_folder
+ local folder="$1" update="$2" tmp_gpg_folder
if [ -z "$SIGN_KEYID" ]; then
echo "GPG-KEY checking failed, no sign key id set."
return 1
fi
+ if [ "$update" == "--update" ]; then
+ update=true
+ fi
+
if [ $SIGN_PACKAGES -eq $on ]; then
if [ -f "$folder/GPG-KEY" ]; then
- if ! gpg --with-colons < $folder/GPG-KEY | cut -d : -f 5 | grep -q -e "$SIGN_KEYID$"; then
+ if $update || ! gpg --with-colons < $folder/GPG-KEY | cut -d : -f 5 | grep -q -e "$SIGN_KEYID$"; then
echo "Adding OpenPGP key id $SIGN_KEYID to $folder/GPG-KEY file..."
tmp_gpg_folder="`mktemp -d $TMP/tmp_gpg_folder.XXXXXX`"
@@ -1455,6 +1459,26 @@ function check_gnupg {
}
+function get_sign_packages_user {
+
+ # get sign package user
+ # usage: get_sign_package_user
+
+ check_gnupg $SIGN_PACKAGES_USER
+
+ if [ ! -z "$SIGN_PACKAGES_KEYID" ]; then
+ SIGN_KEYID="$SIGN_PACKAGES_KEYID"
+ else
+ if [ ! -z "$SIGN_PACKAGES_USER" ]; then
+ SIGN_KEYID="`su $SIGN_PACKAGES_USER -c \
+ "gpg --list-secret-keys --with-colons | grep ^sec | head -n 1 | cut -d : -f 5 | sed 's/^.*\(.\{8\}\)$/\1/'"`"
+ else
+ SIGN_KEYID="`gpg --list-secret-keys --with-colons | grep ^sec | head -n 1 | cut -d : -f 5 | sed 's/^.*\(.\{8\}\)$/\1/'`"
+ fi
+ fi
+
+}
+
function rmd160sum {
# computes RIPEMD-160 message digest
diff --git a/trunk/src/createpkg b/trunk/src/createpkg
index c1b2c77..7b23f48 100644
--- a/trunk/src/createpkg
+++ b/trunk/src/createpkg
@@ -57,6 +57,8 @@ ${red}DESCRIPTION${normal}
commit changes to binary packages' repository
${red}--status${normal}
check binary packages' svn repository status
+ ${red}--update-keyring${normal}
+ update GPG-KEY from binary repositories
${red}-h${normal}, ${red}--help${normal}
show this help
@@ -589,6 +591,14 @@ case $1 in
repository_status
exit $EXIT_CODE
;;
+ '--update-keyring')
+ get_sign_packages_user
+ repo_gpg_key $PACKAGES_DIR --update
+ if [ $PACKAGES_REPOS_NOARCH -eq $on ]; then
+ repo_gpg_key $NOARCH_DIR --update
+ fi
+ exit $EXIT_CODE
+ ;;
*)
if [ "${1:0:1}" != "-" ]; then
PACKAGE="$1"
@@ -722,18 +732,7 @@ if [ $SIGN_PACKAGES -eq $on ]; then
echo "Signing package..."
- check_gnupg $SIGN_PACKAGES_USER
-
- if [ ! -z "$SIGN_PACKAGES_KEYID" ]; then
- SIGN_KEYID="$SIGN_PACKAGES_KEYID"
- else
- if [ ! -z "$SIGN_PACKAGES_USER" ]; then
- SIGN_KEYID="`su $SIGN_PACKAGES_USER -c \
- "gpg --list-secret-keys --with-colons | grep ^sec | head -n 1 | cut -d : -f 5 | sed 's/^.*\(.\{8\}\)$/\1/'"`"
- else
- SIGN_KEYID="`gpg --list-secret-keys --with-colons | grep ^sec | head -n 1 | cut -d : -f 5 | sed 's/^.*\(.\{8\}\)$/\1/'`"
- fi
- fi
+ get_sign_packages_user
if [ ! -z "$SIGN_PACKAGES_USER" ]; then
tmp_sign_folder="`mktemp -d $TMP/createpkg_sign.XXXXXX`"