#! /bin/sh # Adapted from https://stackoverflow.com/a/13738951/7976758 set -e while getopts b:l: opt; do case $opt in b ) branch="$OPTARG" ;; l ) local_repo="$OPTARG" ;; esac done shift `expr $OPTIND - 1` if [ -z "$2" ]; then echo "Usage: $0 [-b branch] [-l local] origin patterns..." >&2 exit 1 fi origin="$1" shift test -z "$branch" && branch=master test -z "$local_repo" && local_repo="`basename \"$origin\" .git`" mkdir -p "$local_repo" cd "$local_repo" git init git remote add origin "$origin" git config core.sparseCheckout true # Loops over remaining args for arg; do echo "$arg" >> .git/info/sparse-checkout done exec git pull origin $branch