#!/bin/bash

command="$1"

tag=`date +"%m.%d"`
image=magento2

using() {
	echo
	echo "Utilização:"
	echo
	echo "$0 build  Para construir a imagem Docker."
	echo "$0 start	Para inicializar o ambiente."
	echo

	exit 1
}

error() {
  echo
  echo -e "\e[91mAlguma coisa aconteceu. Verifique.\e[39m" >&2
  echo
}

build() {
  if [[ -z "$MAGENTO_REPO_USER" ]]; then
    echo -e "\e[91mVocê precisa definir o usuário do repositório Magento antes de continuar.\e[39m" >&2
    echo
    echo "Defina a variável de ambiente MAGENTO_REPO_USER com seu usuário."

    exit 1
  fi

  if [[ -z "$MAGENTO_REPO_PSWD" ]]; then
      echo -e "\e[91mVocê precisa definir a senha do repositório Magento antes de continuar.\e[39m" >&2
      echo
      echo "Defina a variável de ambiente MAGENTO_REPO_PSWD com sua senha."

      exit 1
    fi

	echo
	echo "Construindo a imagem $image:$tag."
	echo
	echo -e "\e[32mIsso pode demorar algum tempo...\e[39m"
	echo

  if ! docker build --build-arg MAGENTO_REPO_USER --build-arg MAGENTO_REPO_PSWD -t "$image:latest" ./scripts; then
    error

    exit 1
  fi

	docker tag $image:latest $image:$tag

	if [ $? -ne 0 ]; then
		error
	fi

	echo
	echo -e "\e[32mImagem construída com sucesso.\e[39m"
	echo
}

start() {
  if [ ! -f scripts/.env ]; then
    echo
    echo "Copiando o .env.sample para .env; essa informação aparecerá apenas uma vez; verifique os valores configurados"
    echo

    cp scripts/.env.sample scripts/.env
  fi

  docker-compose --project-name magento-rede -f scripts/docker-compose.yml up

  if [ $? -ne 0 ]; then
    error

    exit 1
  fi
}

stop() {
  docker-compose -f scripts/docker-compose.yml down

  if [ $? -ne 0 ]; then
    error

    exit 1
  fi
}

if [[ -z $command ]]; then
  using
else
  case $command in
  help)
    using
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  build)
    build
    ;;
  *)
    using
    ;;
  esac
fi
