#!/bin/sh -e # Clones from resolving the arguments and switches into the new directory # ARGS: see git-repo, all arguments beyond the first three are forwarded to git clone remote=$(git-repo "$@") echo "Cloning $remote" test $1 = https && shift case $# in (1) dir=$(basename ${remote%.git});; (3) test "$3" != "$(git config --get user.name)" && prefix=$(echo "$3" | sed "s|\(.\)\b.*$|\1|") && case "$2" in ("$prefix"*) ;; ("$(git config --get user.name)") ;; (*) dir="${prefix}_$2";; esac;; esac case "$4" in (-*|"") cdir="$2";; (*) cdir="$4";; esac shift $(expr 3 \& $# \> 3 \| $#) git clone $remote "$@" $dir --recurse-submodules cd "${dir:-$cdir}" exec