#!/bin/bash

# -e  Exit immediately if a command exits with a non-zero status.
# -u  Treat unset variables as an error when substituting.
set -eu

DOCKER_CONTEXT=vert
START=`date +%s`

help() {
  echo
  echo "💡 Aide 💡"
  echo "----------"
  echo
  echo "Commandes :"
  echo "- ./run install            📦 Installation des dépendances"
  echo "- ./run dev                🚧 Lancement du serveur pour le développement"
  echo "- ./run dev production     🚧 Lancement du serveur pour le développement sans les brouillons"
  echo "- ./run prod               🚀 Déploiement du site en mode production"
  echo "- ./run staging            🚀 Déploiement du site en mode staging"
  echo
}

prod() {
  echo
  echo "🚀 Déploiement du site en mode production 🚀"
  echo
  rm -rf public
  hugo --minify --environment production
  node themes/hugo-theme-lowtech/scripts/typo
  #DATE=`date +\"%Y0101\"` && find public -exec touch -d $DATE {} +
  docker-compose --context $DOCKER_CONTEXT -f docker-compose.prod.yml up -d --build --force-recreate
}

staging() {
  echo
  echo "🚀 Déploiement du site en mode staging 🚀"
  echo
  rm -rf public
  hugo --minify --environment staging
  node themes/hugo-theme-lowtech/scripts/typo
  #DATE=`date +\"%Y0101\"` && find public -exec touch -d $DATE {} +
  docker-compose --context $DOCKER_CONTEXT -f docker-compose.staging.yml up -d --build --force-recreate
}

install() {
  echo "📦 Installation des dépendances 📦"
  echo "----------------------------------"
  echo
  echo "- Récupération du theme"
  git submodule update --init
  echo "- Installation des dépendances node du theme"
  cd themes/hugo-theme-lowtech && npm i
}

if [ $# -ge 1 ]; then
  if [ $1 == "dev" ]; then
    if [ $# -ge 2 ] && [ $2 == "production" ]; then
      echo "🚧 Lancement du serveur pour le développement sans les brouillons"
      hugo server
    else
      echo "🚧 Lancement du serveur pour le développement"
      hugo server -D
    fi
  elif [ $1 == "prod" ]; then
    prod
  elif [ $1 == "staging" ]; then
    staging
  elif [ $1 == "install" ]; then
    install
  fi
else
  help
fi

END=`date +%s`
echo
echo "✨ Done in $((END-START))s"
echo