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