lilbool/vuln-code-analysis
0
1import os
2import json
3import re
4
5def sanitize_filename(filename):
6 """Remove ou substitui caracteres inválidos em nomes de arquivos."""
7 return re.sub(r'[<>:"/\\|?*]', '_', filename)
8
9def compile_safe_codes_to_json(input_dir, output_file):
10 """Compila todos os arquivos de códigos seguros em um único JSON."""
11 compiled_data = []
12
13 # Iterar por todos os arquivos na pasta de códigos seguros
14 for filename in os.listdir(input_dir):
15 if filename.endswith(".txt"): # Filtrar apenas arquivos de texto
16 file_path = os.path.join(input_dir, filename)
17 try:
18 with open(file_path, 'r', encoding='utf-8') as f:
19 content = f.read()
20 # Adicionar os dados ao JSON
21 compiled_data.append({
22 "filename": sanitize_filename(filename),
23 "content": content,
24 "safe": True # Marcar como código seguro
25 })
26 except Exception as e:
27 print(f"[ERROR] Could not process file {filename}: {e}")
28
29 # Salvar os dados compilados no arquivo JSON
30 try:
31 with open(output_file, 'w', encoding='utf-8') as json_file:
32 json.dump(compiled_data, json_file, indent=4)
33 print(f"[SUCCESS] Compiled {len(compiled_data)} safe codes into {output_file}")
34 except Exception as e:
35 print(f"[ERROR] Could not write JSON file: {e}")
36
37if __name__ == "__main__":
38 input_directory = "safe-code-analyzer/safe_codes" # Diretório dos códigos seguros
39 output_json_file = "safe-code-analyzer/compiled_safe_codes.json" # Arquivo JSON de saída
40
41 os.makedirs(os.path.dirname(output_json_file), exist_ok=True)
42 compile_safe_codes_to_json(input_directory, output_json_file)
43 