Files
avz-site/scripts/build-static-routes.sh
2026-06-02 22:34:39 -03:00

120 lines
3.2 KiB
Bash

#!/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 ""