#! /usr/bin/env bash set -o errexit repo_group="$1" setup_path="$2" repos_path="$3" [ -z "$repo_group" ] && repo_group="all" [ -z "$setup_path" ] && setup_path="/root/setup" [ -z "$repos_path" ] && repos_path="/ccpi/repos" repos_astra=( \ "https://github.com/astra-toolbox/astra-toolbox.git master astra.sh" \ ) repos_ccpi=( \ "https://github.com/vais-ral/CCPi-Framework.git master ccpi.sh" \ "https://github.com/vais-ral/CCPi-FrameworkPlugins.git master ccpi.sh" \ "https://github.com/vais-ral/CCPi-astra.git master ccpi.sh" \ "https://github.com/vais-ral/CCPi-Regularisation-Toolkit.git master ccpi.sh" \ ) repos_all=("${repos_astra[@]}" "${repos_ccpi[@]}") declare -n repos="repos_$repo_group" function install_repo { repo="$1" name=$(basename "$repo" .git) branch="$2" script="$3" [ -d "$name" ] || git clone "$repo" ( cd "$name" git pull origin "$branch" git checkout "$branch" bash "$setup_path/build/$script" ln -sf "$setup_path/build/$script" ands_install.sh ) } mkdir -p "$repos_path" ( cd "$repos_path" for repo in "${repos[@]}"; do install_repo $repo done )