Files
COMERCIAL-GTI/gti-maquina-comercial/scripts/baixar-base-rfb.sh
T
GustavoandClaude Sonnet 5 f5af038e19 chore: import gti-maquina-comercial history via subtree
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

git-subtree-dir: gti-maquina-comercial
git-subtree-mainline: 93ca82979e
git-subtree-split: b77484946f
2026-09-28 15:50:08 -03:00

45 lines
1.7 KiB
Bash

#!/bin/bash
# Baixa a base completa de CNPJ da Receita Federal (extrato mais recente) a partir do
# espelho publico da Casa dos Dados (mesma base oficial, servida via Cloudflare).
# Uso: bash scripts/baixar-base-rfb.sh
set -e
BASE_URL="https://dados-abertos-rf-cnpj.casadosdados.com.br/arquivos/2026-06-14"
DEST_DIR="prospeccao/cnpj/rfb-raw"
mkdir -p "$DEST_DIR"
FILES=(
Cnaes.zip Motivos.zip Municipios.zip Naturezas.zip Paises.zip Qualificacoes.zip Simples.zip
Empresas0.zip Empresas1.zip Empresas2.zip Empresas3.zip Empresas4.zip
Empresas5.zip Empresas6.zip Empresas7.zip Empresas8.zip Empresas9.zip
Estabelecimentos0.zip Estabelecimentos1.zip Estabelecimentos2.zip Estabelecimentos3.zip Estabelecimentos4.zip
Estabelecimentos5.zip Estabelecimentos6.zip Estabelecimentos7.zip Estabelecimentos8.zip Estabelecimentos9.zip
Socios0.zip Socios1.zip Socios2.zip Socios3.zip Socios4.zip
Socios5.zip Socios6.zip Socios7.zip Socios8.zip Socios9.zip
)
TOTAL=${#FILES[@]}
COUNT=0
for FILE in "${FILES[@]}"; do
COUNT=$((COUNT+1))
DEST="$DEST_DIR/$FILE"
if [ -f "$DEST" ]; then
EXPECTED=$(curl -sI --max-time 20 "$BASE_URL/$FILE" | grep -i content-length | tr -d '\r' | awk '{print $2}')
ACTUAL=$(stat -c%s "$DEST" 2>/dev/null || stat -f%z "$DEST" 2>/dev/null)
if [ -n "$EXPECTED" ] && [ "$EXPECTED" == "$ACTUAL" ]; then
echo "[$COUNT/$TOTAL] $FILE ja existe e esta completo ($ACTUAL bytes). Pulando."
continue
fi
fi
echo "[$COUNT/$TOTAL] baixando $FILE ..."
curl -sS --retry 3 --retry-delay 5 --max-time 1800 -o "$DEST" "$BASE_URL/$FILE"
SIZE=$(stat -c%s "$DEST" 2>/dev/null || stat -f%z "$DEST" 2>/dev/null)
echo "[$COUNT/$TOTAL] $FILE concluido ($SIZE bytes)"
done
echo "download completo."
du -sh "$DEST_DIR"