#!/bin/bash
# Script simplificado: apaga o arquivo de destino antes de copiar o de origem

# Detecta SO e define paths
OS="$(uname -s)"

# Defaults (Linux environment)
SRC_DIR_LINUX="/var/www/alvaroguedes.lat/output"
DST_DIR_LINUX="/root/Xslt/Functions/Tables"
REPO_DIR_LINUX="/root/Xslt"

# macOS paths
MAC_SRC_DIR="/Users/alvaroguedes/Desktop/XSL"
MAC_DST_DIR="/Users/alvaroguedes/Desktop/XML/Estudos/VisualCode/Xslt/Functions/Tables"
MAC_REPO_DIR="/Users/alvaroguedes/Desktop/XML/Estudos/VisualCode/Xslt"

if [[ "$OS" == "Darwin" ]]; then
  SRC_DIR="$MAC_SRC_DIR"
  DST_DIR="$MAC_DST_DIR"
  REPO_DIR="$MAC_REPO_DIR"
else
  SRC_DIR="$SRC_DIR_LINUX"
  DST_DIR="$DST_DIR_LINUX"
  REPO_DIR="$REPO_DIR_LINUX"
fi

FILENAME="fornecedores_lookup.xml"
ARQ_ORIGEM="$SRC_DIR/$FILENAME"
ARQ_DESTINO="$DST_DIR/$FILENAME"

# Garante diretório de destino
mkdir -p "$DST_DIR"

# Verifica se arquivo de origem existe
if [ ! -f "$ARQ_ORIGEM" ]; then
  echo "[ERRO] Arquivo de origem não encontrado: $ARQ_ORIGEM" >&2
  exit 1
fi

# Remove destino antes de copiar
rm -f "$ARQ_DESTINO"

# Copia arquivo
cp "$ARQ_ORIGEM" "$ARQ_DESTINO" || {
  echo "[ERRO] Falha ao copiar $ARQ_ORIGEM -> $ARQ_DESTINO" >&2
  exit 2
}

echo "[INFO] Arquivo copiado com sucesso para $ARQ_DESTINO"

# Git: adiciona, commita e faz push
cd "$REPO_DIR" || exit 3
git add "Functions/Tables/$FILENAME"
git commit -m "Atualiza $FILENAME" --no-verify || echo "[INFO] Sem alterações a commitar."

# Inicia ssh-agent e adiciona chave antes do push
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_github_nopass

git push origin main --force

echo "[INFO] Script finalizado com sucesso"
exit 0