To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / SCRIPTS / update.sh @ 127:622ddc1ace50

History | View | Annotate | Download (1.5 KB)

1
#!/bin/bash
2

    
3
# Run this from the top-level vamp-build-and-test directory
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
6

    
7
single=""
8
if [ -n "$1" ]; then
9
    single="$1"
10
fi
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

    
21
set -eu
22

    
23
failed=/tmp/failed_$$
24
rm -f "$failed"
25
trap "rm -f $failed" 0
26

    
27
cat METADATA/repos.txt | grep -v '^#' | awk -F= '{ print $1, $2 }' |
28
    while read name loc; do
29
        if [ -n "$single" ]; then
30
            if [ "$single" != "$name" ]; then
31
                continue
32
            fi
33
        fi
34
	if [ -d "$name"/.hg ]; then 
35
 	    ( cd $name ; hg pull && hg update $revopt_hg ) || echo "$name" >> "$failed"
36
	elif [ -d "$name"/.git ]; then 
37
 	    ( cd $name ; git pull ) || echo "$name" >> "$failed"
38
            if [ -n "$rev" ]; then
39
                ( cd $name ; git checkout "$rev" ) || echo "$name" >> "$failed"
40
            fi
41
	elif [ -d "$name" ]; then
42
	    echo "ERROR: Directory \"$name\" exists, but is not a git or hg repo" 1>&2
43
	    exit 1
44
	else
45
	    case "$loc" in
46
		*/hg/*)
47
		    hg clone $revopt_hg "$loc" "$name" || echo "$name" >> "$failed";;
48
		*//git*)
49
		    git clone $revopt_git "$loc" "$name" || echo "$name" >> "$failed";;
50
		*)
51
		    echo "ERROR: Can't deduce repo type from URL \"$loc\"" 1>&2
52
		    exit 1;;
53
	    esac
54
	fi
55
    done
56

    
57
echo "Done"
58
if [ -f "$failed" ]; then
59
    echo "Failed repos:"
60
    cat "$failed"
61
fi