#!/usr/bin/env bash
set -eo pipefail
SELF=$(which $0)
VAGRANT_SSH_PORT=${VAGRANT_SSH_PORT:-"2222"}
PUBLIC_KEY=${PUBLIC_KEY:-"$HOME/.ssh/id_rsa.pub"}
FORWARDED_PORT=${FORWARDED_PORT:-":8080"}
indent() { sed "s/^/       /"; }
if ! grep dokku.me ~/.ssh/config 2>/dev/null; then
  echo "-----> Configuring SSH to use $VAGRANT_SSH_PORT for dokku.me..."
  touch ~/.ssh/config
  {
    echo "Host dokku.me"
    echo "    Port $VAGRANT_SSH_PORT"
    echo "    RequestTTY yes"
  } >> ~/.ssh/config
fi
echo "-----> Ensuring Vagrant is running..."
pushd $PWD > /dev/null
cd "$(dirname $SELF)/.." && vagrant up | indent
popd > /dev/null

echo "-----> Installing SSH public keys..."
ssh -o "StrictHostKeyChecking=no" -i ~/.vagrant.d/insecure_private_key vagrant@dokku.me "sudo sshcommand acl-add dokku test" < $PUBLIC_KEY

for app_path in apps/*; do
  app=$(basename $app_path)
  echo "-----> Running test deploy of $app..."
  ./test_deploy $app_path dokku.me $FORWARDED_PORT
done
