]> Git Repo - qemu.git/blob - scripts/git-submodule.sh
build: allow setting a custom GIT binary for transparent proxying
[qemu.git] / scripts / git-submodule.sh
1 #!/bin/sh
2 #
3 # This code is licensed under the GPL version 2 or later.  See
4 # the COPYING file in the top-level directory.
5
6 substat=".git-submodule-status"
7
8 command=$1
9 shift
10 modules="$@"
11
12 test -z "$GIT" && GIT=git
13
14 error() {
15     echo "$0: $*"
16     echo
17     echo "Unable to automatically checkout GIT submodules '$modules'."
18     echo "If you require use of an alternative GIT binary (for example to"
19     echo "enable use of a transparent proxy), then please specify it by"
20     echo "running configure by with the '--with-git' argument. e.g."
21     echo
22     echo " $ ./configure --with-git='tsocks git'"
23     echo
24     exit 1
25 }
26
27 if test -z "$modules"
28 then
29     test -e $substat || touch $substat
30     exit 0
31 fi
32
33 if ! test -e ".git"
34 then
35     echo "$0: unexpectedly called with submodules but no git checkout exists"
36     exit 1
37 fi
38
39 case "$command" in
40 status)
41     test -f "$substat" || exit 1
42     trap "rm -f ${substat}.tmp" EXIT
43     $GIT submodule status $modules > "${substat}.tmp"
44     test $? -ne 0 && error "failed to query git submodule status"
45     diff "${substat}" "${substat}.tmp" >/dev/null
46     exit $?
47     ;;
48 update)
49     $GIT submodule update --init $modules 1>/dev/null
50     test $? -ne 0 && error "failed to update modules"
51
52     $GIT submodule status $modules > "${substat}"
53     test $? -ne 0 && error "failed to save git submodule status" >&2
54     ;;
55 esac
56
57 exit 0
This page took 0.026572 seconds and 4 git commands to generate.