-UNIFY=no
-if [ "$1" = "--unify" ] ; then
- UNIFY=yes
- shift
-fi
-if [ $# = 0 ] ; then
- usage
-else
- SERVERS=
- while [ $# -gt 0 -a "$1" != "--" ]
- do
- if [ "$1" = "ALL" ] ; then
- SERVERS=`cd $VROOTDIR && ls`
- else
- SERVERS="$SERVERS $1"
- fi
- shift
- done
- if [ "$1" != "--" ] ; then
- usage
- elif [ "$SERVERS" = "" ] ; then
- echo no server specified
- echo
- usage
- else
- shift
- for serv in $SERVERS
- do
- # We try to run the rpm command in the same security
- # context than the vserver, if running.
- # This way, process operations will be done in the proper
- # context
- # If the vserver is not running, chcontext will
- # pick an unused one.
- CTXOPT=""
- CTXFILE=/var/run/vservers/$serv.ctx
- if [ -f $CTXFILE ] ; then
- source $CTXFILE
- CTXOPT="--ctx $S_CONTEXT"
- fi
- #echo rpm --root $VROOTDIR/$serv $*
- echo Updating server $serv
- $SBINDIR/chcontext --silent $CTXOPT rpm --root $VROOTDIR/$serv $*
- done
- if [ "$UNIFY" = "yes" ] ; then
- PACKAGES=
- for pkg in $*
- do
- case $pkg in
- -*)
- # RPM options ?
- ;;
- --*)
- # RPM options ?
- ;;
- *)
- pkg=`rpm -qp $pkg --queryformat %{name}`
- PACKAGES="$PACKAGES $pkg"
- ;;
- esac
- done
- echo Unification
- $PKGLIBDIR/vunify --excldir /var/log $SERVERS -- $PACKAGES
- fi
- fi
-fi
-