and again
[bootstrapfs.git] / plc.d / packages
index 0108cde..2046fad 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-*' 2> /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
@@ -225,6 +230,22 @@ case "$1" in
 
        result "$MESSAGE"
        ;;
+    index)
+       # just rerun createrepo
+       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
+           echo ============================== running createrepo in $repository
+           createrepo -g yumgroups.xml $repository
+       done
+       ;;
     clean)
        shift
        if [[ -z "$@" ]] ; then