: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..." >&2
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
{
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
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[*]}
while test $i -gt 0; do
let --i
- d=$CONFDIR/${vservers[$i]}/apps/init
+ d=$__CONFDIR/${vservers[$i]}/apps/init
f=$d/mark
- { test "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \
+ { test -n "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \
{ test -z "$OPTION_MARK" && test ! -e "$f"; } || \
unset vservers[$i]
done
-makedir=$(mktemp -d /tmp/vserver-init.XXXXXX)
-okfile=$(mktemp /tmp/vserver-init.XXXXXX)
-passedfile=$(mktemp /tmp/vserver-init.XXXXXX)
-trap "rm -rf $makedir $resultfile $passedfile" EXIT
-
-defaulttty="$CONFDIR/.defaults/apps/init/tty"
-test -c "$defaulttty" || defaulttty=$(tty)
-test -c "$defaulttty" || defaulttty=/dev/null
+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
test_cmd=false
case "$OPTION_FLAVOR" in
{
cat <<EOF
-TTY = ${defaulttty}
.%.stamp:
${TAB}$test_cmd || { \
${TAB}echo -n '.' >>$passedfile ; \
-${TAB}$_VSERVER --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR} >\$(TTY) 2>\$(TTY) <\$(TTY) ; }
+${TAB}$_VSERVER --defaulttty --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR}; }
${TAB}echo -n '.' >>$okfile
${TAB}@touch "\$@"
EOF
} >$makedir/Makefile
for i in "${vservers[@]}"; do
- d=$CONFDIR/$i/apps/init
+ d="$__CONFDIR/$i"/apps/init
echo "$i"
test -e "$d"/depends || continue
cat "$d"/depends
done | sort -u | while read vserver; do
- d=$CONFDIR/$vserver/apps/init
- test ! -e $d/tty || {
- echo -e ".$vserver.stamp:\tTTY=$d/tty" >>$makedir/Makefile
- }
+ d="$__CONFDIR/$vserver"/apps/init
case "$OPTION_FLAVOR" in
start)
#cat $makedir/Makefile
make -k ${NOOPTION_DEBUG:+-s} ${OPTION_PARALLEL:+-j$OPTION_PARALLEL} -C $makedir
-test -s "$passedfile" || exit 0
-test -s "$okfile" || exit 1
-cmp -s "$passedfile" "$okfile" || exit 2
+test -s "$passedfile" || exit 0
+test -s "$okfile" || exit 1
+$_CMP -s "$passedfile" "$okfile" || exit 2
exit 0