function verifyVserver()
{
- true
+ local xtra="${2:+ mentioned in '$2'}"
+ case x$1 in
+ (x\#*|x)
+ return 1;; # skip empty and comment lines
+ ($__CONFDIR/*)
+ warning "This version of 'start-vservers' supports only short vserver names; try to remove the '$__CONFDIR' from '$1'$xtra"
+ return 1
+ ;;
+ (/*)
+ warning "This version of 'start-vservers' supports only short vserver names; '$1'$xtra is not possible"
+ return 1
+ ;;
+ (*)
+ $_VSERVER_INFO -q "$__CONFDIR/$1" VDIR || {
+ warning "Vserver '$1'$xtra does not exist; skipping it..."
+ return 1;
+ }
+ ;;
+ esac
+
+ return 0
}
###
declare -a tmp_vservers=()
declare -r TAB=$(echo -en "\t")
OPTION_MARK=
+OPTION_MARK_ANY=1
OPTION_PARALLEL=99
OPTION_DEBUG=
NOOPTION_DEBUG=1
(--help) showHelp $0 ;;
(--version) showVersion $0 ;;
(-c) CONFDIR=$2; shift;;
- (-m) OPTION_MARK=$2; shift;;
+ (-m) OPTION_MARK=$2; OPTION_MARK_ANY=; shift;;
(-j) OPTION_PARALLEL=$2; shift;;
(--start) OPTION_FLAVOR=start;;
(--stop) OPTION_FLAVOR=stop;;
let --i
d=$__CONFDIR/${vservers[$i]}/apps/init
f=$d/mark
+ { test -n "$OPTION_MARK_ANY"; } || \
{ test -n "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \
{ test -z "$OPTION_MARK" && test ! -e "$f"; } || \
unset vservers[$i]
done
-makedir=$($_MKTEMPDIR /tmp/vserver-init.XXXXXX)
-okfile=$($_MKTEMP /tmp/vserver-init.XXXXXX)
-passedfile=$($_MKTEMP /tmp/vserver-init.XXXXXX)
-trap "$_RM -rf $makedir $resultfile $passedfile" EXIT
+makedir=$($_MKTEMPDIR vserver-init.XXXXXX)
+okfile=$($_MKTEMP vserver-init.XXXXXX)
+passedfile=$($_MKTEMP vserver-init.XXXXXX)
+trap "$_RM -rf $makedir $okfile $passedfile" EXIT
test_cmd=false
case "$OPTION_FLAVOR" in
echo -ne "all:\t"
for i in "${vservers[@]}"; do
+ verifyVserver "$i" || continue
+
echo -n ".$i.stamp "
done
echo
test -e "$d"/depends || continue
cat "$d"/depends
done | sort -u | while read vserver; do
+ verifyVserver "$vserver" || continue
d="$__CONFDIR/$vserver"/apps/init
case "$OPTION_FLAVOR" in
- start)
+ (start)
if test -e "$d"/depends; then
echo -ne ".$vserver.stamp:\t"
cat "$d"/depends | while read dep; do
- verifyVserver "$dep"
+ verifyVserver "$dep" "$d"/depends || continue
echo -n ".$dep.stamp "
done
echo
fi >>$makedir/Makefile
;;
- stop)
+ (stop)
if test -e "$d"/depends; then
cat "$d"/depends | while read dep; do
- verifyVserver "$dep"
- echo -ne ".$dep.stamp:\t.$vserver.stamp"
+ verifyVserver "$dep" "$d"/depends || continue
+ echo -e ".$dep.stamp:\t.$vserver.stamp"
done
echo
fi >>$makedir/Makefile