diff options
author | Angelo Mantellini (manangel) <angelo.mantellini@irt-systemx.fr> | 2017-03-29 18:00:06 +0200 |
---|---|---|
committer | Angelo Mantellini (manangel) <angelo.mantellini@irt-systemx.fr> | 2017-03-30 18:58:33 +0200 |
commit | 3137acdd5a45285dab9903f9d41560c63eca8523 (patch) | |
tree | 38bd8525a9e214d848a73fc40e81ddb182cf91b6 /tools/bin/gitCloneOneOf.sh | |
parent | 9b30fc10fb1cbebe651e5a107e8ca5b24de54675 (diff) |
first commit
Change-Id: I8412b8e7d966c2fbc508b537fd9a9bbcfc628ca8
Signed-off-by: Angelo Mantellini (manangel) <angelo.mantellini@irt-systemx.fr>
Diffstat (limited to 'tools/bin/gitCloneOneOf.sh')
-rwxr-xr-x | tools/bin/gitCloneOneOf.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/bin/gitCloneOneOf.sh b/tools/bin/gitCloneOneOf.sh new file mode 100755 index 00000000..fecdf990 --- /dev/null +++ b/tools/bin/gitCloneOneOf.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +if [ $# -lt 3 ]; then + echo "ERROR incorrect number of parameters" + echo "Usage:" + echo " $0 <repo_name> <repo_directory> <remote1> [<remote2>...]" + echo + echo "$0 clones repository <repo_name> to the directory <repo_directory>" + echo "It clones off of <remote1>. If git can't clone off of <remote1> it tries" + echo "to clone off of <remote2>, then <remote3> etc." + exit 1 +fi + +REPO_NAME=$1 +REPO_DIR=$2 + +REMOTES=${@:3} + +if [ -d $REPO_DIR ]; then + echo "Directory $REPO_DIR exists, no need to clone" + exit 0 +fi + +echo "###################################################################" +echo "# Cloning $REPO_NAME" + +for remote in $REMOTES; do + echo "# Trying $remote" + git clone $remote $REPO_DIR >/dev/null 2>&1 + ERROR=$? + if [ $ERROR -eq 0 ]; then + echo "# SUCCESS" + exit 0 + fi + echo "# Skipped " +done +echo "# FAILED cloning " +exit 1 |