41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
import os
|
|
|
|
# Configuration
|
|
PROJECT_DIR = '.'
|
|
OUTPUT_FILE = 'siro_v1_secure_latest.md'
|
|
EXCLUDED_DIRS = {'.git', 'vendor', 'node_modules', '.gemini'}
|
|
EXCLUDED_FILES = {OUTPUT_FILE, 'aggregate_files.py'}
|
|
|
|
def aggregate_files():
|
|
with open(OUTPUT_FILE, 'w', encoding='utf-8') as outfile:
|
|
outfile.write(f'# Siro V1 - Secure Latest Version\n\n')
|
|
|
|
for root, dirs, files in os.walk(PROJECT_DIR):
|
|
# Prune excluded directories
|
|
dirs[:] = [d for d in dirs if d not in EXCLUDED_DIRS]
|
|
|
|
for file in files:
|
|
if file in EXCLUDED_FILES:
|
|
continue
|
|
|
|
filepath = os.path.join(root, file)
|
|
rel_path = os.path.relpath(filepath, PROJECT_DIR)
|
|
|
|
# We mainly want to include code files
|
|
if any(file.endswith(ext) for ext in ['.php', '.sql', '.ini', '.json', '.md', '.txt', '.py', '.sh']):
|
|
try:
|
|
with open(filepath, 'r', encoding='utf-8', errors='ignore') as infile:
|
|
content = infile.read()
|
|
|
|
outfile.write(f'## File: {rel_path}\n')
|
|
outfile.write(f'```\n')
|
|
outfile.write(content)
|
|
outfile.write(f'\n```\n\n')
|
|
print(f"Added: {rel_path}")
|
|
except Exception as e:
|
|
print(f"Could not read {rel_path}: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
aggregate_files()
|
|
print(f"\nDone! File created: {OUTPUT_FILE}")
|