72 lines
2.4 KiB
Text
72 lines
2.4 KiB
Text
import os
|
|
import shutil
|
|
from pathlib import Path
|
|
|
|
# --- KONFIGURASJON ---
|
|
KILDE_MAPPE = "/opt/teeoff/"
|
|
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()
|