#!/usr/bin/env bash
# Based on https://gist.github.com/bobmaerten/9329752

CONTAINER_NAME="penultimate-dev-postgres"

function getContainerStatus(){
  CONTAINER_ID=$(docker ps -a | grep -v Exit | grep $CONTAINER_NAME | awk '{print $1}')
  if [[ -z $CONTAINER_ID ]] ; then
    echo "Not running."
    return 1
  else
    echo "Running in container: $CONTAINER_ID"
    return 0
  fi
}

case "$1" in
  start)
    docker ps -a | grep -v Exit | grep -q $CONTAINER_NAME
    if [ $? -ne 0 ]; then
      docker run --rm -p 65432:5432 -v "/tmp/penultimate-dev-postgres-data:/var/lib/postgresql/data" -e POSTGRES_PASSWORD=penultimatedeveloper --name $CONTAINER_NAME -d postgres:13
    fi
    getContainerStatus
    ;;
  stop)
    CONTAINER_ID=$(docker ps -a | grep -v Exit | grep $CONTAINER_NAME | awk '{print $1}')
    if [[ -n $CONTAINER_ID ]] ; then
      SRV=$(docker stop $CONTAINER_ID)
      if [ $? -eq 0 ] ; then
        echo 'Stopped.'
      fi
    fi
    ;;
  *)
    printf "Usage: `basename $0` {start|stop} \nStarts (or stops and deletes) a postegres docker container named $CONTAINER_NAME on port 65432, which the dev environment is expecting to find.\n\n"
    exit 1
    ;;
esac

exit 0