Revision 127:622ddc1ace50
| 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