Mercurial > hg > vamp-build-and-test
comparison SCRIPTS/update-all.sh @ 100:793467b5e61c
Don't use subrepos, they're too fragile. Just use a list of repos and a script instead.
author | Chris Cannam |
---|---|
date | Fri, 04 Sep 2015 12:01:02 +0100 |
parents | 5addbcdc2e87 |
children |
comparison
equal
deleted
inserted
replaced
98:f51f242840d5 | 100:793467b5e61c |
---|---|
1 #!/bin/bash | 1 #!/bin/bash |
2 | |
3 set -eu | |
2 | 4 |
3 # Run this from the top-level vamp-build-and-test directory | 5 # Run this from the top-level vamp-build-and-test directory |
4 | 6 |
5 cat .hgsub | grep -v '^#' | awk '{ print $1 }' | while read x; do | 7 failed=/tmp/failed_$$ |
6 if [ -d "$x"/.hg ]; then | 8 rm -f "$failed" |
7 ( cd $x ; hg pull && hg update ) | 9 trap "rm -f $failed" 0 |
8 elif [ -d "$x"/.git ]; then | 10 |
9 ( cd $x ; git pull ) | 11 cat METADATA/repos.txt | grep -v '^#' | awk -F= '{ print $1, $2 }' | |
10 else | 12 while read name loc; do |
11 url=$(grep "^$x " .hgsub | awk '{ print $3; }') | 13 if [ -d "$name"/.hg ]; then |
12 hg clone "$url" "$x" | 14 ( cd $name ; hg pull && hg update ) || echo "$name" >> "$failed" |
13 fi | 15 elif [ -d "$name"/.git ]; then |
14 done | 16 ( cd $name ; git pull ) || echo "$name" >> "$failed" |
17 elif [ -d "$name" ]; then | |
18 echo "ERROR: Directory \"$name\" exists, but is not a git or hg repo" 1>&2 | |
19 exit 1 | |
20 else | |
21 case "$loc" in | |
22 */hg/*) | |
23 hg clone "$loc" "$name" || echo "$name" >> "$failed";; | |
24 *//git*) | |
25 git clone "$loc" "$name" || echo "$name" >> "$failed";; | |
26 *) | |
27 echo "ERROR: Can't deduce repo type from URL \"$loc\"" 1>&2 | |
28 exit 1;; | |
29 esac | |
30 fi | |
31 done | |
32 | |
33 echo "Done" | |
34 if [ -f "$failed" ]; then | |
35 echo "Failed repos:" | |
36 cat "$failed" | |
37 fi |