To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
root / SCRIPTS / update.sh
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 |