Revision 127:622ddc1ace50 SCRIPTS/update.sh

View differences:

SCRIPTS/update.sh
2 2

  
3 3
# Run this from the top-level vamp-build-and-test directory
4 4
# Optional argument for the single repo to checkout; default is all of them
5
# Optional second argument for the revision to checkout; default is tip
5 6

  
6 7
single=""
7 8
if [ -n "$1" ]; then
8 9
    single="$1"
9 10
fi
10 11

  
12
rev=""
13
revopt_hg=""
14
revopt_git=""
15
if [ -n "$2" ]; then
16
    rev="$2"
17
    revopt_hg="-r$rev"
18
    revopt_git="-b$rev"
19
fi
20

  
11 21
set -eu
12 22

  
13 23
failed=/tmp/failed_$$
......
22 32
            fi
23 33
        fi
24 34
	if [ -d "$name"/.hg ]; then 
25
 	    ( cd $name ; hg pull && hg update ) || echo "$name" >> "$failed"
35
 	    ( cd $name ; hg pull && hg update $revopt_hg ) || echo "$name" >> "$failed"
26 36
	elif [ -d "$name"/.git ]; then 
27 37
 	    ( cd $name ; git pull ) || echo "$name" >> "$failed"
38
            if [ -n "$rev" ]; then
39
                ( cd $name ; git checkout "$rev" ) || echo "$name" >> "$failed"
40
            fi
28 41
	elif [ -d "$name" ]; then
29 42
	    echo "ERROR: Directory \"$name\" exists, but is not a git or hg repo" 1>&2
30 43
	    exit 1
31 44
	else
32 45
	    case "$loc" in
33 46
		*/hg/*)
34
		    hg clone "$loc" "$name" || echo "$name" >> "$failed";;
47
		    hg clone $revopt_hg "$loc" "$name" || echo "$name" >> "$failed";;
35 48
		*//git*)
36
		    git clone "$loc" "$name" || echo "$name" >> "$failed";;
49
		    git clone $revopt_git "$loc" "$name" || echo "$name" >> "$failed";;
37 50
		*)
38 51
		    echo "ERROR: Can't deduce repo type from URL \"$loc\"" 1>&2
39 52
		    exit 1;;

Also available in: Unified diff