Nye-TeeOff/eksport_script.py

73 lines
2.4 KiB
Python
Raw Normal View History

import os
import shutil
from pathlib import Path
# --- KONFIGURASJON ---
KILDE_MAPPE = "/opt/teeoff/"
2026-04-10 09:52:34 +02:00
EKSPORT_MAPPE = "/opt/teeoff/kode_eksport_3/"
TRE_FIL = "/opt/teeoff/fil-tre-3.txt"
# Filtyper vi vil kopiere
FILTYPER = ['.py', '.ts', '.tsx']
# Mapper vi IKKE vil ha med i treet eller skanne (sparer tid og rot)
IGNORER_MAPPER = ['.git', 'node_modules', '__pycache__', 'kode_eksport', '.next']
def generer_tre_og_kopier():
kilde_sti = Path(KILDE_MAPPE)
eksport_sti = Path(EKSPORT_MAPPE)
# 1. Opprett eksportmappen hvis den ikke finnes
eksport_sti.mkdir(parents=True, exist_ok=True)
tre_linjer = []
kopierte_filer = 0
print("Skanner filer og genererer tre...")
# 2. Gå gjennom alle mapper og filer
for root, dirs, files in os.walk(kilde_sti):
# Fjern ignorerte mapper så vi ikke går inn i dem
dirs[:] = [d for d in dirs if d not in IGNORER_MAPPER]
# Regn ut innrykk basert på hvor dypt vi er i mappestrukturen
nivaa = root.replace(KILDE_MAPPE, '').count(os.sep)
innrykk = ' ' * 4 * nivaa
mappe_navn = os.path.basename(root)
# Legg til mappen i treet
if mappe_navn:
tre_linjer.append(f"{innrykk}📁 {mappe_navn}/")
else:
tre_linjer.append(f"📁 {kilde_sti.name}/")
sub_innrykk = ' ' * 4 * (nivaa + 1)
# 3. Gå gjennom filene i mappen
for fil in files:
tre_linjer.append(f"{sub_innrykk}📄 {fil}")
fil_sti = Path(root) / fil
# 4. Sjekk om filen har riktig endelse og skal kopieres
if fil_sti.suffix in FILTYPER:
# Lag et unikt filnavn for å unngå overskriving
relativ_sti = fil_sti.relative_to(kilde_sti)
nytt_navn = str(relativ_sti).replace(os.sep, '_').replace('.', '_') + '.txt'
ny_sti = eksport_sti / nytt_navn
# Kopier filen
shutil.copy2(fil_sti, ny_sti)
kopierte_filer += 1
# 5. Lagre filteret til tekstfilen
with open(TRE_FIL, 'w', encoding='utf-8') as f:
f.write('\n'.join(tre_linjer))
print(f"\n✅ Ferdig!")
print(f"📁 Filtre er lagret i: {TRE_FIL}")
print(f"📝 Kopierte {kopierte_filer} kodefiler til: {EKSPORT_MAPPE}")
if __name__ == "__main__":
generer_tre_og_kopier()