X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plc.d%2Fpackages;h=5f0fad1d79560d383447db9a09467fd2b87876b0;hb=239baf8f19610ce459804f4537edd05718f29a0c;hp=56c04509b4d875740600ab1b5538495090c2a229;hpb=b1509ac4a89f51b30a3bab468cadc1613b3bbe74;p=bootstrapfs.git diff --git a/plc.d/packages b/plc.d/packages index 56c0450..5f0fad1 100755 --- a/plc.d/packages +++ b/plc.d/packages @@ -108,34 +108,47 @@ case "$1" in mode=$1; shift - if [[ -z "$@" ]] ; then - # use all subdirs in install-rpms by default - repositories=/var/www/html/install-rpms/* - else - # else use argv + # hack for PLC + # there are some very old repos there, as well as some sensitive areas + # so by convention the repositories that have a 'PRESERVE' file won't + # be touched by the cross-flavour stuff + # i.e. no symlinks get created to or from there, + # and yumgroups is untouched + + # use argv if provided + if [[ -n "$@" ]] ; then repositories="$@" + else + # use all subdirs in install-rpms by default + repositories=/var/www/html/install-rpms/* fi + # filter out PRESERVE'd repos + cross_repositories="" + for repository in $repositories; do + [ -f $repository/PRESERVE ] || cross_repositories="$cross_repositories $repository" + done + ########## # deal with the sliceimage packages # symlink all instances of plain 'sliceimage-*rpm' in all repos # and cleanup old links - sirpms=$(find $repositories -name 'sliceimage*rpm' -a -type f) + sirpms=$(find $cross_repositories -name 'sliceimage*rpm' -a -type f) # for nicer upgrades, also remove symlinks from 5.0 - silinks=$(find $repositories '(' -name 'sliceimage*rpm' -o -name 'vserver*rpm' ')' -a -type l) + silinks=$(find $cross_repositories '(' -name 'sliceimage*rpm' -o -name 'vserver*rpm' ')' -a -type l) for silink in $silinks; do [ ! -e $silink ] && { echo removing old $silink; rm $silink; } done - for repo in $repositories; do + for repository in $cross_repositories; do for sirpm in $sirpms; do - # if in the repo we're dealing with, ignore - if [ "$(echo $sirpm | sed -e s,^$repo,,)" != $sirpm ] ; then + # if in the repository we're dealing with, ignore + if [ "$(echo $sirpm | sed -e s,^$repository,,)" != $sirpm ] ; then continue fi b=$(basename $sirpm) - link=$repo/$b + link=$repository/$b if [ ! -e $link ] ; then echo "creating symlink $link towards $sirpm" ln -s $sirpm $link @@ -145,12 +158,14 @@ case "$1" in ########## # now that the symlinks are OK, we can tweak yumgroups - for repository in $repositories; do + for repository in $cross_repositories; do hack_yumgroups $repository done ########## sign plain packages for repository in $repositories ; do + # skip non-directory + [ -d $repository ] || continue # the rpms that need signing new_rpms= # and the corresponding stamps