diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2017-10-30 09:29:29 +0100 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2017-11-06 11:05:24 +0000 |
commit | 49ad3cfa67145a71644d7832ed20c2a2b0620d15 (patch) | |
tree | 32ff7602356e43622ba7d68232a62152337caf2a /scripts/git-submodule.sh | |
parent | 37b5e74e28f4b3ee93c28eb0106a65e02521f48b (diff) |
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>
Diffstat (limited to 'scripts/git-submodule.sh')
-rwxr-xr-x | scripts/git-submodule.sh | 19 |
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" |