{
echo \
$"Usage: $(basename $0) [-c <CFGDIR>] [-m <MARK>] [-j <NUM] [--test]
- [--start|--stop] [--all] -- <name>+
+ [--start|--stop] [--all|--[un]marked|--running|--stopped] -- <name>+
Please report bugs to $PACKAGE_BUGREPORT"
exit 0
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
}
###
set +e
-tmp=$(getopt -o c:j:m: --long debug,help,version,start,stop,test,all -n "$0" -- "$@") || exit 1
+tmp=$(getopt -o c:j:m: \
+ --long debug,help,version,start,stop,test,$VS_ALLVSERVERS_ARGS \
+ -n "$0" -- "$@") || exit 1
eval set -- "$tmp"
+declare -a tmp_vservers=()
declare -r TAB=$(echo -en "\t")
OPTION_MARK=
-OPTION_ALL=
OPTION_PARALLEL=99
OPTION_DEBUG=
NOOPTION_DEBUG=1
esac
while true; do
+ getAllVserversByArg tmp_vservers "$1" || \
case "$1" in
- --help) showHelp $0 ;;
- --version) showVersion $0 ;;
- -c) CONFDIR=$2; shift;;
- -m) OPTION_MARK=$2; shift;;
- -j) OPTION_PARALLEL=$2; shift;;
- --start) OPTION_FLAVOR=start;;
- --stop) OPTION_FLAVOR=stop;;
- --all) OPTION_ALL=1;;
- --debug) OPTION_DEBUG=1; NOOPTION_DEBUG=; set -x;;
- --) shift; break;;
- *) echo $"$0: internal error; arg=='$1'" >&2; exit 1;;
+ (--help) showHelp $0 ;;
+ (--version) showVersion $0 ;;
+ (-c) CONFDIR=$2; shift;;
+ (-m) OPTION_MARK=$2; shift;;
+ (-j) OPTION_PARALLEL=$2; shift;;
+ (--start) OPTION_FLAVOR=start;;
+ (--stop) OPTION_FLAVOR=stop;;
+ (--debug) OPTION_DEBUG=1; NOOPTION_DEBUG=; set -x;;
+ (--) shift; break;;
+ (*) echo $"$0: internal error; arg=='$1'" >&2; exit 1;;
esac
shift
done
exit 1
}
-vservers=( "$@" )
-test -z "$OPTION_ALL" || getAllVservers vservers
+vservers=( "$@" "${tmp_vservers[@]}" )
orig_vservers=$vservers
i=${#vservers[*]}
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