vservers=( "$@" )
test -z "$OPTION_ALL" || getAllVservers vservers
+orig_vservers=$vservers
+i=${#vservers[*]}
+
+while test $i -gt 0; do
+ let --i
+ d=$CONFDIR/${vservers[$i]}/apps/init
+ f=$d/mark
+ { test "$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)
-trap "rm -rf $makedir" EXIT
+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)
stop) test_cmd="! ${_VSERVER} --silent '\$*' status";;
esac
-
{
cat <<EOF
TTY = ${defaulttty}
.%.stamp:
-${TAB}$test_cmd || \
-${TAB}${_VSERVER} --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR} >\$(TTY) 2>\$(TTY) <\$(TTY)
+${TAB}$test_cmd || { \
+${TAB}echo -n '.' >>$passedfile ; \
+${TAB}$_VSERVER --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR} >\$(TTY) 2>\$(TTY) <\$(TTY) ; }
+${TAB}echo -n '.' >>$okfile
${TAB}@touch "\$@"
EOF
echo
} >$makedir/Makefile
-orig_vservers=$vservers
-i=${#vservers[*]}
-
-while test $i -gt 0; do
- let --i
- d=$CONFDIR/${vservers[$i]}/apps/init
- { test "$OPTION_MARK" && grep -sx "$OPTION_MARK" "$d"/mark; } || \
- { test -z "$OPTION_MARK" && test ! -e "$d"/mark; } || \
- unset vservers[$i]
-done
-
for i in "${vservers[@]}"; do
d=$CONFDIR/$i/apps/init
echo "$i"
#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
+exit 0