Introduce git-checkout.sh
author <stefano.stabellini@eu.citrix.com> <>
Tue, 24 Jan 2012 15:09:29 +0000 (15:09 +0000)
committer <stefano.stabellini@eu.citrix.com> <>
Tue, 24 Jan 2012 15:09:29 +0000 (15:09 +0000)
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

Introduce a script to perform git checkout on an external git tree; use
git-checkout.sh in ioemu-dir-find.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
.hgignore
scripts/git-checkout.sh [new file with mode: 0755]
tools/Makefile

index 87d8ef7db47355666c4bdef26066885b1f334fcd..3145eee4647558f78b4e955d0044826a4df1ecc4 100644 (file)
--- a/.hgignore
+++ b/.hgignore
 ^tools/xm-test/lib/XmTestLib/config.py$
 ^tools/xm-test/lib/XmTestReport/xmtest.py$
 ^tools/xm-test/tests/.*\.test$
-^tools/ioemu-remote
+^tools/ioemu-dir-remote
 ^tools/ioemu-dir$
 ^tools/ocaml/.*/.*\.annot$
 ^tools/ocaml/.*/.*\.cmx?a$
diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh
new file mode 100755 (executable)
index 0000000..15b3ce9
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+if test $# -lt 3; then
+       echo "Usage: $0 <tree> <tag> <dir>"
+       exit 1
+fi
+
+TREE=$1
+TAG=$2
+DIR=$3
+
+set -e
+
+if test \! -d $DIR-remote; then
+       rm -rf $DIR-remote $DIR-remote.tmp
+       mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp
+       $GIT clone $TREE $DIR-remote.tmp
+       if test "$TAG" ; then
+               cd $DIR-remote.tmp
+               $GIT branch -D dummy >/dev/null 2>&1 ||:
+               $GIT checkout -b dummy $TAG
+               cd ..
+       fi
+       mv $DIR-remote.tmp $DIR-remote
+fi
+rm -f $DIR
+ln -sf $DIR-remote $DIR
index 443ee7feae116027546a5a3108232c5ab854cfe6..7f5ee3e8d1c2bec801cc765c194623dae17ec216 100644 (file)
@@ -75,7 +75,7 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: subdirs-distclean
-       rm -rf ioemu-dir ioemu-remote
+       rm -rf ioemu-dir ioemu-dir-remote
 
 ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
 IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -93,20 +93,8 @@ ioemu-dir-find:
        if test -d $(CONFIG_QEMU); then \
                mkdir -p ioemu-dir; \
        else \
-               if [ ! -d ioemu-remote ]; then \
-                       rm -rf ioemu-remote ioemu-remote.tmp; \
-                       mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \
-                       $(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \
-                       if [ "$(QEMU_TAG)" ]; then                      \
-                               cd ioemu-remote.tmp;                    \
-                               $(GIT) branch -D dummy >/dev/null 2>&1 ||:; \
-                               $(GIT) checkout -b dummy $(QEMU_TAG);   \
-                               cd ..;                                  \
-                       fi;                                             \
-                       mv ioemu-remote.tmp ioemu-remote; \
-               fi; \
-               rm -f ioemu-dir; \
-               ln -sf ioemu-remote ioemu-dir; \
+               export GIT=$(GIT); \
+               $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
        fi
        set -e; \
                $(buildmakevars2shellvars); \
@@ -117,7 +105,7 @@ ioemu-dir-find:
 ioemu-dir-force-update:
        set -ex; \
        if [ "$(QEMU_TAG)" ]; then \
-               cd ioemu-remote; \
+               cd ioemu-dir-remote; \
                $(GIT) fetch origin; \
                $(GIT) reset --hard $(QEMU_TAG); \
        fi