From 4e5de54c0c7287da07da76755349becd820ce9d1 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Fri, 6 Jul 2012 12:34:44 +0200 Subject: [PATCH] make YUM archive update non-interactive Pass empty password to it , using expect --- update-archive/update-yum-archive.sh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/update-archive/update-yum-archive.sh b/update-archive/update-yum-archive.sh index 72b1b81..4010b7b 100755 --- a/update-archive/update-yum-archive.sh +++ b/update-archive/update-yum-archive.sh @@ -19,9 +19,13 @@ if test ! -x /usr/bin/gpg; then exit 1 fi +if test ! -x /usr/bin/expect; then + echo "$0: /usr/bin/expect missing. Install expect" + exit 1 +fi + #check if root has rpm macros confdir=`pwd` -pkgs_to_sign="" architectures="i386 x86_64" dirs_to_upd="" for vdist in centos/5.5 rhel/5.5; do @@ -58,7 +62,6 @@ for vdist in centos/5.5 rhel/5.5; do done done # Make symlinks from the regular FTP archive - has_packages=false for pdir in /home/ftp/pub/*; do use=false if test -f $pdir/.htaccess -a $section != "main"; then @@ -72,7 +75,7 @@ for vdist in centos/5.5 rhel/5.5; do if test -d $distdir; then if test -d $distdir/SRPMS; then for f in $distdir/SRPMS/*.src.rpm; do - if test -f $f; then + if test -f $f; then ln -sf $f $d/SRPMS/ fi done @@ -81,9 +84,19 @@ for vdist in centos/5.5 rhel/5.5; do mkdir -p $d/${arch}/Packages for f in $distdir/RPMS/${arch}/*.rpm $distdir/RPMS/noarch/*.rpm; do if test -f $f; then - pkgs_to_sign="${pkgs_to_sign} $f" ln -sf $f $d/${arch}/Packages/ - has_packages=true + if rpm -K $f|grep -q ' gpg' >/dev/null; then + echo "Already signed $f" + else + expect << __EOF + spawn rpm --addsign $f +expect -exact "Enter pass phrase: " +send -- "\r" +expect eof +__EOF + chgrp staff $f + chmod g+w $f + fi fi done done @@ -92,10 +105,6 @@ for vdist in centos/5.5 rhel/5.5; do done done done -echo "Signing packages (default ID PPH is empty):" -rpm --addsign ${pkgs_to_sign} -chgrp staff ${pkgs_to_sign} -chmod g+w ${pkgs_to_sign} echo "Updating repository meta:" for rdir in ${dirs_to_upd}; do echo "Section ${rdir}" -- 1.7.10.4