#!/usr/bin/env bash

read -r -d '' usage << EOM
Usage:
  gh-deploy-clone user/repo [ENVIRONMENT]
EOM

[ -z "$1" ] && echo && echo "$usage" && echo && exit 1

repo="$1"
repo_name="${repo#*/}"
env=$([ -n "$2" ] && echo "$2_" || echo)
key="github_$env$repo_name"
key_path="$HOME/.ssh/$key.rsa"

cat >> "$HOME/.ssh/config" << EOM
Host $repo_name.github.com
  HostName github.com
  User git
  IdentityFile $key_path
  IdentitiesOnly yes
EOM

ssh-keygen -f "$key_path" -N '' -t rsa -C "$key"

echo
echo
echo Add the deploy key below to
echo "https://github.com/$repo/settings/keys"
echo and press enter to clone the repo.
echo
echo
cat "$key_path.pub"
echo
echo

read -p "Press enter to continue..." </dev/tty

sudo -u www-data git clone "git@$repo_name.github.com:$repo.git"
