#!/bin/bash # ============================================================================ # Script Post-Build - Gera paginas estaticas para rotas React # ============================================================================ # Isso permite que URLs como /avaliacao funcionem diretamente, # mesmo em servidores sem try_files configurado. # # Uso: bash scripts/build-static-routes.sh (executa automaticamente apos build) # ============================================================================ set -e GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' echo -e "${BLUE}[Post-Build]${NC} Gerando paginas estaticas para rotas..." DIST_DIR="${1:-dist}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" if [ ! -d "$DIST_DIR" ]; then echo -e "${YELLOW}Pasta dist/ nao encontrada. Execute npm run build primeiro.${NC}" exit 1 fi # Lista de todas as rotas do site ROUTES=( "sobre" "contato" "cases" "blog" "avaliacao" "tecnologias" "tecnologia-para-condominios" "ti-para-contabilidades" "ti-para-advocacias" "monitoramento-empresarial" "firewall-pfsense-empresarial" "backup-corporativo" "voip-empresarial" "servicos/ti-gerenciada" "servicos/cloud-computing" "servicos/seguranca" "servicos/suporte" "servicos/redes" "servicos/pabx" "servicos/backup" "servicos/servidores" "servicos/consultoria" "servicos/noc" "suporte-windows-server" "suporte-linux-empresas" "suporte-pfsense" "suporte-proxmox" "suporte-vmware" "suporte-sharepoint" "suporte-redes-cisco" "onde-atuamos" "suporte-ti-guarulhos" "suporte-ti-mogi-das-cruzes" "suporte-ti-ipiranga" "suporte-ti-vila-formosa" "suporte-ti-cerqueira-cesar" "suporte-ti-santana" "suporte-ti-bras" "suporte-ti-ribeirao-preto" "suporte-ti-industria" "suporte-ti-portaria-remota" "suporte-ti-clinicas" "suporte-ti-imobiliarias" "suporte-ti-recrutamento-selecao" "privacidade" "termos" "ferramentas" "ferramentas/spf-checker" "ferramentas/dkim-checker" "ferramentas/dmarc-checker" "ferramentas/mx-lookup" "ferramentas/ssl-checker" "ferramentas/email-security-score" "ferramentas/microsoft-365-analyzer" ) # Copiar index.html como base cp "$DIST_DIR/index.html" "$DIST_DIR/index.html.bak" # Gerar pagina para cada rota for route in "${ROUTES[@]}"; do mkdir -p "$DIST_DIR/$route" cp "$DIST_DIR/index.html" "$DIST_DIR/$route/index.html" done echo -e "${GREEN}OK${NC} ${#ROUTES[@]} rotas estaticas criadas" # Criar 404.html (copia do index.html para fallback) cp "$DIST_DIR/index.html" "$DIST_DIR/404.html" echo -e "${GREEN}OK${NC} 404.html criado" # Limpar backup rm -f "$DIST_DIR/index.html.bak" echo "" # Gerar HTML prerenderizado com conteudo real (SEO) echo "" echo -e "${BLUE}[Prerender]${NC} Gerando HTML com conteudo real para SEO..." node "${SCRIPT_DIR}/prerender.cjs" echo "" echo -e "${GREEN}Post-build concluido!${NC}" echo "" echo "Estrutura gerada:" echo " dist/index.html (home)" echo " dist/404.html (pagina nao encontrada)" echo " dist/{rota}/index.html (${#ROUTES[@]} paginas estaticas)" echo " dist/{rota}/index.html (HTML com conteudo real para SEO)" echo ""