#!/usr/bin/env bash
# This script rebuilds the whole environment and starts a new container

# 1. ensure this script is run from the project's root, not the drb_counter directory
pwd_dirname=$(basename $(pwd));
script_dirname="drb_counter";
arch=$(uname)
if [ "$pwd_dirname" == "$script_dirname" ]; then
  echo "PWD DIRNAME: "$pwd_dirname;
  echo "You must run this script from the project's root dir (../) for the Dockerfile to have access to the configs to COPY";
  exit 1;
fi

# 2. stop and remove all running/existing containers
docker rm $(docker stop $(docker ps -a -q --filter ancestor=mozo_drb_counter))

# 3. remove the previously built images
docker rmi mozo_drb_counter

# 4. rebuild a fresh image from the latest code
docker build -f drb_counter/Dockerfile -t mozo_drb_counter .

# debug docker and enter the bash:
#  docker run --network=host --env DRB_ENV=production --env COUCHDB_ADMIN_PASSWORD=$COUCHDB_ADMIN_PASSWORD -t -i --rm mozo_drb_counter bash

# 5. Spin up the counter container from the generated image
if [ $arch == "Darwin" ]; then
  echo "Running the created image using the Mac Darwin port exposing"
  docker run -p 9022:9022 --env DRB_ENV=production --env COUCHDB_ADMIN_PASSWORD=$COUCHDB_ADMIN_PASSWORD --add-host=host.docker.internal:host-gateway --restart unless-stopped --detach --name=mozo_drb_counter mozo_drb_counter
else
  # docker run --network=host --env DRB_ENV=production --env COUCHDB_ADMIN_PASSWORD=$COUCHDB_ADMIN_PASSWORD --add-host=host.docker.internal:host-gateway --restart unless-stopped --detach --name=mozo_drb_counter mozo_drb_counter
  docker run --network=host --env DRB_ENV=production --env COUCHDB_ADMIN_PASSWORD=$COUCHDB_ADMIN_PASSWORD --restart unless-stopped --detach --name=mozo_drb_counter mozo_drb_counter
fi

# To just start the container created through al these steps without rebuilding them:
#   docker container start $(docker ps -a -q --filter ancestor=mozo_drb_counter)
