67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
import os
|
|
|
|
TAMANHO_MAX = 230000 # Limite por arquivo
|
|
|
|
def coletar_arquivos(diretorios, extensoes=(".c", ".h")):
|
|
arquivos = []
|
|
for diretorio in diretorios:
|
|
for raiz, pastas, nomes_arquivos in os.walk(diretorio):
|
|
pastas[:] = [p for p in pastas if p != "build"] # Ignorar "build"
|
|
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"
|
|
|
|
# Se ultrapassar o limite, salva em um novo arquivo
|
|
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 = "" # reinicia buffer
|
|
|
|
conteudo_atual += bloco
|
|
total_arquivos += 1
|
|
|
|
# Salvar o que sobrou
|
|
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_main = "main"
|
|
componentes_escolhidos = [
|
|
"ocpp"
|
|
]
|
|
|
|
diretorios_componentes = [os.path.join("components", nome) for nome in componentes_escolhidos]
|
|
diretorios_para_incluir = [diretorio_main] + diretorios_componentes
|
|
|
|
arquivos = coletar_arquivos(diretorios_para_incluir)
|
|
unir_em_partes(arquivos)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|