#!/usr/bin/env bash # FIXME: Add checks # FIXME: Add logging REPO="$PWD"; TARGET_DIR="$1"; BRANCH="$2"; function perform_clone_or_pull { target="$1"; if [! -e "$target/.git" ]; then git clone "$REPO" "$target"; fi ( cd "$target"; git fetch git checkout origin/$BRANCH ) } while read old_rew new_rew ref; do if [ "$ref" == "refs/heads/$BRANCH"]; then perform_clone_or_pull "$TARGET_DIR"; fi; done;