Chris@0: #!/bin/bash Chris@6: Chris@100: set -eu Chris@100: Chris@6: # Run this from the top-level vamp-build-and-test directory Chris@6: Chris@100: failed=/tmp/failed_$$ Chris@100: rm -f "$failed" Chris@100: trap "rm -f $failed" 0 Chris@100: Chris@100: cat METADATA/repos.txt | grep -v '^#' | awk -F= '{ print $1, $2 }' | Chris@100: while read name loc; do Chris@100: if [ -d "$name"/.hg ]; then Chris@100: ( cd $name ; hg pull && hg update ) || echo "$name" >> "$failed" Chris@100: elif [ -d "$name"/.git ]; then Chris@100: ( cd $name ; git pull ) || echo "$name" >> "$failed" Chris@100: elif [ -d "$name" ]; then Chris@100: echo "ERROR: Directory \"$name\" exists, but is not a git or hg repo" 1>&2 Chris@100: exit 1 Chris@100: else Chris@100: case "$loc" in Chris@100: */hg/*) Chris@100: hg clone "$loc" "$name" || echo "$name" >> "$failed";; Chris@100: *//git*) Chris@100: git clone "$loc" "$name" || echo "$name" >> "$failed";; Chris@100: *) Chris@100: echo "ERROR: Can't deduce repo type from URL \"$loc\"" 1>&2 Chris@100: exit 1;; Chris@100: esac Chris@100: fi Chris@100: done Chris@100: Chris@100: echo "Done" Chris@100: if [ -f "$failed" ]; then Chris@100: echo "Failed repos:" Chris@100: cat "$failed" Chris@100: fi