Initial commit
This commit is contained in:
78
read_project.py
Executable file
78
read_project.py
Executable file
@@ -0,0 +1,78 @@
|
||||
import os
|
||||
|
||||
TAMANHO_MAX = 31000 # Limite por arquivo
|
||||
|
||||
EXCLUIR_PASTAS = {"node_modules", "dist", "build", ".git", ".vite"}
|
||||
|
||||
def coletar_arquivos(diretorios, extensoes=(".js", ".ts", ".tsx", ".jsx", ".css", ".html", ".json", ".md")):
|
||||
arquivos = []
|
||||
for diretorio in diretorios:
|
||||
for raiz, pastas, nomes_arquivos in os.walk(diretorio):
|
||||
pastas[:] = [p for p in pastas if p not in EXCLUIR_PASTAS]
|
||||
for nome in nomes_arquivos:
|
||||
if nome.endswith(extensoes):
|
||||
caminho_completo = os.path.join(raiz, nome)
|
||||
arquivos.append(caminho_completo)
|
||||
return arquivos
|
||||
|
||||
def unir_em_partes(arquivos, prefixo="projeto_parte", limite=TAMANHO_MAX):
|
||||
parte = 1
|
||||
conteudo_atual = ""
|
||||
total_arquivos = 0
|
||||
|
||||
for arquivo in arquivos:
|
||||
try:
|
||||
with open(arquivo, "r", encoding="utf-8") as f_origem:
|
||||
conteudo = f_origem.read()
|
||||
except Exception as e:
|
||||
print(f"⚠️ Erro ao ler {arquivo}: {e}")
|
||||
continue
|
||||
|
||||
bloco = f"\n\n// === Início de: {arquivo} ===\n{conteudo}\n// === Fim de: {arquivo} ===\n"
|
||||
|
||||
if len(conteudo_atual) + len(bloco) > limite:
|
||||
nome_saida = f"{prefixo}{parte}.c"
|
||||
with open(nome_saida, "w", encoding="utf-8") as f_saida:
|
||||
f_saida.write(conteudo_atual)
|
||||
print(f"✅ Criado: {nome_saida}")
|
||||
parte += 1
|
||||
conteudo_atual = ""
|
||||
|
||||
conteudo_atual += bloco
|
||||
total_arquivos += 1
|
||||
|
||||
if conteudo_atual:
|
||||
nome_saida = f"{prefixo}{parte}.c"
|
||||
with open(nome_saida, "w", encoding="utf-8") as f_saida:
|
||||
f_saida.write(conteudo_atual)
|
||||
print(f"✅ Criado: {nome_saida}")
|
||||
|
||||
print(f"\n🔹 {total_arquivos} arquivos de código processados.")
|
||||
print(f"🔹 Arquivos gerados: {parte}")
|
||||
|
||||
def main():
|
||||
diretorio_base = "."
|
||||
|
||||
# Subpastas principais que queremos incluir (se existirem)
|
||||
componentes_escolhidos = ["src", "public", "config", "utils", "routes", "middleware"]
|
||||
diretorios_para_incluir = [os.path.join(diretorio_base, nome)
|
||||
for nome in componentes_escolhidos
|
||||
if os.path.exists(os.path.join(diretorio_base, nome))]
|
||||
|
||||
# Arquivos individuais importantes na raiz do projeto
|
||||
arquivos_extras = []
|
||||
for nome in ["vite.config.js", "vite.config.ts", "package.json", "tsconfig.json", "server.js"]:
|
||||
caminho = os.path.join(diretorio_base, nome)
|
||||
if os.path.isfile(caminho):
|
||||
arquivos_extras.append(caminho)
|
||||
|
||||
# Coleta os arquivos das pastas
|
||||
arquivos_das_pastas = coletar_arquivos(diretorios_para_incluir)
|
||||
|
||||
# Junta tudo
|
||||
arquivos = arquivos_das_pastas + arquivos_extras
|
||||
unir_em_partes(arquivos)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user