#!/bin/bash

# Script para corrigir TODAS as permissões de binários do node_modules
# Execute como root: sudo bash corrigir-todos-binarios.sh

echo "🔧 Corrigindo TODAS as permissões de binários..."

BASE_DIR="/var/www/gestorstream"
WEB_USER="www-data"
FRONTEND_DIR="$BASE_DIR/frontend"

cd "$FRONTEND_DIR" || exit 1

# 1. Corrigir permissões de TODO o node_modules
echo "📦 Corrigindo permissões do node_modules..."
chown -R $WEB_USER:$WEB_USER node_modules

# 2. Dar permissão de execução para TODOS os binários
echo "🔐 Dando permissão de execução a TODOS os binários..."
find node_modules/.bin -type f -exec chmod +x {} \; 2>/dev/null || true
find node_modules/.bin -type l -exec chmod +x {} \; 2>/dev/null || true
chmod -R +x node_modules/.bin 2>/dev/null || true

# 3. Corrigir esbuild especificamente
echo "🔧 Corrigindo esbuild..."
if [ -d "node_modules/@esbuild" ]; then
    find node_modules/@esbuild -type f -name "esbuild" -exec chmod +x {} \; 2>/dev/null || true
    find node_modules/@esbuild -type f -exec chmod +x {} \; 2>/dev/null || true
    chmod -R +x node_modules/@esbuild 2>/dev/null || true
    echo "✅ Permissões do esbuild corrigidas"
fi

# 4. Corrigir todos os binários em subdiretórios
echo "🔧 Corrigindo binários em subdiretórios..."
find node_modules -type f -name "*.js" -path "*/bin/*" -exec chmod +x {} \; 2>/dev/null || true
find node_modules -type f -name "esbuild" -exec chmod +x {} \; 2>/dev/null || true
find node_modules -type f -name "vite" -exec chmod +x {} \; 2>/dev/null || true

# 5. Verificar esbuild especificamente
if [ -f "node_modules/@esbuild/linux-x64/bin/esbuild" ]; then
    chmod +x node_modules/@esbuild/linux-x64/bin/esbuild
    echo "✅ esbuild encontrado e corrigido:"
    ls -la node_modules/@esbuild/linux-x64/bin/esbuild
else
    echo "⚠️  esbuild não encontrado no caminho esperado"
    echo "🔍 Procurando esbuild..."
    find node_modules -name "esbuild" -type f 2>/dev/null | head -5
fi

# 6. Tentar rebuild
echo ""
echo "🔨 Tentando rebuild agora..."
cd "$FRONTEND_DIR"
sudo -u $WEB_USER npm run build

# 7. Verificar resultado
if [ -f "$FRONTEND_DIR/dist/index.html" ]; then
    echo ""
    echo "✅ Build concluído com sucesso!"
    chown -R $WEB_USER:$WEB_USER "$FRONTEND_DIR/dist"
    chmod -R 755 "$FRONTEND_DIR/dist"
    echo ""
    echo "📊 Conteúdo do dist/:"
    ls -lah "$FRONTEND_DIR/dist/" | head -10
    echo ""
    echo "🔄 Recarregando nginx..."
    systemctl reload nginx
    echo ""
    echo "✅ TUDO PRONTO! Sistema deve estar funcionando agora."
else
    echo ""
    echo "❌ Build ainda falhou. Verifique os erros acima."
    echo ""
    echo "🔍 Verificando permissões do esbuild:"
    find node_modules -name "esbuild" -type f -exec ls -la {} \; 2>/dev/null | head -3
    exit 1
fi

