summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel P. Berrange2017-10-30 09:29:29 +0100
committerDaniel P. Berrange2017-11-06 12:05:24 +0100
commit49ad3cfa67145a71644d7832ed20c2a2b0620d15 (patch)
tree32ff7602356e43622ba7d68232a62152337caf2a
parentbuild: don't fail if given a git submodule which does not exist (diff)
downloadqemu-49ad3cfa67145a71644d7832ed20c2a2b0620d15.tar.gz
qemu-49ad3cfa67145a71644d7832ed20c2a2b0620d15.tar.xz
qemu-49ad3cfa67145a71644d7832ed20c2a2b0620d15.zip
build: delay check for empty git submodule list
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>
-rwxr-xr-xscripts/git-submodule.sh19
1 files changed, 12 insertions, 7 deletions
diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
index 3683bc9a04..030617b4ac 100755
--- a/scripts/git-submodule.sh
+++ b/scripts/git-submodule.sh
@@ -33,12 +33,6 @@ error() {
exit 1
}
-if test -z "$maybe_modules"
-then
- test -e $substat || touch $substat
- exit 0
-fi
-
modules=""
for m in $maybe_modules
do
@@ -51,7 +45,7 @@ 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
@@ -59,6 +53,11 @@ fi
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`
@@ -66,6 +65,12 @@ status)
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"