X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plc.d%2Fpackages;h=3392ed18c54d829a4c131bf1729e0ea2c2b350b1;hb=614149ca717b55c4beeed5dd0a640b8b6083b854;hp=a19422fa0195ab5b60ec1169f6fa1304f60f2854;hpb=f51604ac9a0f76a71d698952c7bbba1fcb46b3af;p=myplc.git diff --git a/plc.d/packages b/plc.d/packages index a19422f..3392ed1 100755 --- a/plc.d/packages +++ b/plc.d/packages @@ -7,7 +7,7 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: packages,v 1.2 2006/05/18 22:58:20 mlhuang Exp $ +# $Id: packages,v 1.5 2007/01/30 15:09:22 thierry Exp $ # # Source function library and configuration @@ -19,30 +19,51 @@ set -x case "$1" in start) - MESSAGE=$"Signing node packages" + MESSAGE=$"Signing and indexing node packages" dialog "$MESSAGE" shopt -s nullglob - for repository in /var/www/html/install-rpms/* ; do + + shift + if [[ -z "$@" ]] ; then + # use all subdirs in install-rpms by default + repositories=/var/www/html/install-rpms/* + else + # else use argv + repositories=$@ + fi + + for repository in $repositories ; do # Sign all RPMS. setsid detaches rpm from the terminal, # allowing the (hopefully blank) GPG password to be # entered from stdin instead of /dev/tty. packages= + stamps= + # create a stamp once the package gets signed + mkdir $repository/signed-stamps + for package in $repository/*.rpm ; do - packages="$packages $package" + stamp=$repository/signed-stamps/$(basename $package).signed + # is package newer than stamp ? + if [ $package -nt $stamp ] ; then + packages="$packages $package" + stamps="$stamps $stamp" + else + echo "Package $package already signed - skipped" + fi done if [ -n "$packages" ] ; then echo | setsid rpm \ --define "_signature gpg" \ --define "_gpg_path /etc/planetlab" \ --define "_gpg_name $PLC_MAIL_SUPPORT_ADDRESS" \ - --resign $packages + --resign $packages && touch $stamps check fi - # Update yum metadata. createrepo sometimes leaves behind - # an .olddata file accidentally. - rm -rf $repository/.olddata + # Update yum metadata. yum-arch createrepo sometimes leaves behind + # .oldheaders and .olddata directories accidentally. + rm -rf $repository/{.oldheaders,.olddata} yum-arch $repository check createrepo -g yumgroups.xml $repository @@ -51,6 +72,25 @@ case "$1" in result "$MESSAGE" ;; + clean) + shift + if [[ -z "$@" ]] ; then + # use all subdirs in install-rpms by default + repositories=/var/www/html/install-rpms/* + else + # else use argv + repositories=$@ + fi + + for repository in $repositories ; do + rm -rf $repository/signed-stamps + rm -rf $repository/repodata + rm -rf $repository/headers + done + ;; + *) + echo "Usage: $0 start|clean [repo ..]" + ;; esac exit $ERRORS