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`"
}
+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
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
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"
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`"