fix the corner case of an empty or non existing install-rpms/
[bootstrapfs.git] / plc.d / packages
index 0108cde..5c59f30 100755 (executable)
@@ -108,26 +108,29 @@ case "$1" in
 
        mode=$1; shift
 
-       # on PLC there is a need to select the repos as there are quite a few in there
-       # would contain names or patterns relative to install-rpms
-       explicit_list=/var/www/html/install-rpms/PACKAGES
+       # 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="$@"
-           cross_repositories="$@"
-       elif [ -f $explicit_list ] ; then
-           cross_repositories=""
-           for name in $(grep -v '#' $explicit_list); do 
-               cross_repositories="$cross_repositories /var/www/html/install-rpms/$name"
-           done
-           repositories=/var/www/html/install-rpms/*
        else
-           # use all subdirs in install-rpms by default
-           repositories=/var/www/html/install-rpms/*
-           cross_repositories=/var/www/html/install-rpms/*
+           # consider all subdirs in install-rpms by default, except the slice repos
+           # use find instead of ls - for the corner case where the dir. is empty
+           # (thanks Thomas Dreibholz for the heads up)
+           repositories=$(find /var/www/html/install-rpms -maxdepth 1 -mindepth 1 -type d \! -name 'slice-*' >& /dev/null)
        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
@@ -163,6 +166,8 @@ case "$1" in
 
        ########## 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