We short circuit the git submodule update when passed an empty module list.
This accidentally causes the 'status' command to write to the status file. The
test needs to be delayed into the individual commands to avoid this premature
writing of the status file.
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
exit 1
}
-if test -z "$maybe_modules"
-then
- test -e $substat || touch $substat
- exit 0
-fi
-
modules=""
for m in $maybe_modules
do
fi
done
-if ! test -e ".git"
+if test -n "$maybe_modules" && ! test -e ".git"
then
echo "$0: unexpectedly called with submodules but no git checkout exists"
exit 1
case "$command" in
status)
+ if test -z "$maybe_modules"
+ then
+ test -s ${substat} && exit 1 || exit 0
+ fi
+
test -f "$substat" || exit 1
CURSTATUS=`$GIT submodule status $modules`
OLDSTATUS=`cat $substat`
exit $?
;;
update)
+ if test -z "$maybe_modules"
+ then
+ test -e $substat || touch $substat
+ exit 0
+ fi
+
$GIT submodule update --init $modules 1>/dev/null
test $? -ne 0 && error "failed to update modules"