#!/bin/bash
#npm install -g yarn --force
#npm install -g nuxt

# Verifica se o número da release foi fornecido como argumento
if [ -z "$1" ]; then
  echo "Erro: Número da release não fornecido."
  echo "Uso: $0 <release_number>"
  exit 1
fi

RELEASE_NUMBER=$1
PROJECT_DIR="/home/autosolu/portal"
RELEASE_DIR="/home/autosolu/portal/releases/release-${RELEASE_NUMBER}"

# Configura o ambiente Node.js
export PATH=/home/autosolu/nodevenv/portal/18/bin:$PATH

# Verifica se o Yarn está instalado
if ! command -v yarn &> /dev/null; then
  echo "Yarn não encontrado, instalando Yarn globalmente..."
  npm install -g yarn --force
else
  echo "Yarn já está instalado."
fi

# Ativa o ambiente virtual e navega para o diretório do projeto
source /home/autosolu/nodevenv/portal/18/bin/activate
cd "$PROJECT_DIR" || { echo "Erro ao acessar o diretório do projeto: $PROJECT_DIR"; exit 1; }

# Verifica se o diretório de releases existe, se não, cria
if [ ! -d "$RELEASE_DIR" ]; então
  mkdir -p "$RELEASE_DIR"
fi

# Navega para o diretório de produção e atualiza o arquivo robots.txt
cd "$PROJECT_DIR/public" || { echo "Erro ao acessar o diretório público: $PROJECT_DIR/public"; exit 1; }
cp robots_production.txt robots.txt

# Instala as dependências do projeto e constrói a aplicação
cd "$PROJECT_DIR" || { echo "Erro ao retornar ao diretório do projeto: $PROJECT_DIR"; exit 1; }
yarn install --frozen-lockfile
yarn build

# Copia os arquivos gerados para o diretório da release
cp -r .output/public/* "$RELEASE_DIR/"

# Atualiza o link simbólico para a nova release
ln -sfn "$RELEASE_DIR" "/home/autosolu/portal/releases/current"

echo "Deploy da release ${RELEASE_NUMBER} concluído com sucesso."