#!/bin/bash -e
# Clones a fork and sets a corresponding upstream
# ARGS
# - repo name (omit if setting upstream in existing repo)
# - upstream user
# - own user
# - host
# - target directory name (and further arguments to clone)
# In an existing repo, first arg is omitted
if test -d ".git" # TODO search upwards
then repo="$(basename "$PWD")"
	git remote set-url origin "$(git-repo "${3:-github.com}" "$repo" "${2:-$(git config --get user.name)}" "${@:4}")"
else test $# -eq 0 && echo "Usage: $0 [repo (omit if in repo)] [upstream owner] [own user] [url]" && exit 2
	repo="$1" && shift
	if test "$#" -eq 0
	then git-get "$repo"
	else
		test -d "$d1" && cd "$d1/0-forks"
		if ! git-get "${3:-github.com}" "$repo" "${2:-$(git config --get user.name)}" "${@:4}"
		then repo="$1-$repo"
			 git-get "${3:-github.com}" "$repo" "${2:-$(git config --get user.name)}" "${@:4}"
		fi
	fi
	cd "$(basename "$(expr "$4" \| "$repo")")"
fi
user="${1:-$repo}"
git remote remove upstream 2>/dev/null || true
git remote add upstream "$(git-repo "${3:-github.com}" "$repo" "$user")"
git remote -v
exec $SHELL