#!/usr/bin/env nix-shell
#!nix-shell -i bash -p morph git

set -euxo pipefail

GRIDNAME=$1
shift

case "${GRIDNAME}" in
    "local")
	BRANCH="323.continuous-deployment"
	;;

    "testing")
	BRANCH="staging"
	;;

    "production")
	BRANCH="production"
	;;

    *)
	echo "Unknown grid: ${GRIDNAME}"
	exit 1
esac

CHECKOUT="${HOME}/PrivateStorageio"
REPO="https://whetstone.privatestorage.io/privatestorage/PrivateStorageio.git"

if [ -e "${CHECKOUT}" ]; then
    git -C "${CHECKOUT}" pull
else
    git clone "${REPO}" "${CHECKOUT}"
    # Check out the right branch ... which also happens to be named after this
    # grid (or maybe this grid is named after the branch).
    git -C "${CHECKOUT}" checkout "${BRANCH}"
fi

echo "$(date --iso-8601=seconds) $(git -C "${CHECKOUT}" rev-parse HEAD)" >> ${HOME}/updates.txt

morph deploy "${CHECKOUT}"/morph/grid/"${GRIDNAME}"/grid.nix switch --on "$(hostname)"