import os
from pathlib import Path

# Taranacak uzantılar
EXTENSIONS = {".py", ".txt", ".md", ".json", ".yaml", ".yml", ".html", ".php", ".css", ".js"}

# Çıktı dosyası
OUTPUT_FILE = Path("proje_haritasi.txt")

# Hariç tutulacak dosyalar
IGNORE_FILES = {OUTPUT_FILE.name, "py.py", "py2.py", "düzelt.py"}

# Hariç tutulacak klasörler
IGNORE_DIRS = {"__pycache__", ".git", ".idea", ".vscode", "venv312", "env" , "vendor"}


def proje_haritasi_olustur(root):
    with open(OUTPUT_FILE, "w", encoding="utf-8") as f:

        for root_dir, dirs, files in os.walk(root):

            # ignore klasörleri temizle
            dirs[:] = [d for d in dirs if d not in IGNORE_DIRS]

            level = root_dir.replace(root, "").count(os.sep)
            indent = " " * 4 * level
            klasor_adi = os.path.basename(root_dir)

            f.write(f"{indent}[{klasor_adi}]\n")

            for file in files:
                if file in IGNORE_FILES:
                    continue

                if Path(file).suffix in EXTENSIONS:
                    sub_indent = " " * 4 * (level + 1)
                    f.write(f"{sub_indent}{file}\n")


if __name__ == "__main__":
    proje_haritasi_olustur(os.getcwd())
    print("Proje haritası oluşturuldu:", OUTPUT_FILE)



