62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
import os
|
|
|
|
# --- INNSTILLINGER ---
|
|
# Filtyper vi vil ta med (legg til flere hvis du trenger)
|
|
FILTYPER = ['.kt', '.java', '.xml', '.gradle', '.kts', '.pro']
|
|
|
|
# Mapper vi skal ignorere (viktig for å unngå tusenvis av autogenererte filer)
|
|
IGNORER_MAPPER = {
|
|
'build', '.gradle', '.idea', '.git', 'captures', 'cxx',
|
|
'generated', 'intermediates', 'outputs', 'tmp'
|
|
}
|
|
|
|
OUTPUT_FILNAVN = 'hele_prosjektet.txt'
|
|
|
|
def samle_filer():
|
|
# Finner mappen scriptet kjøres fra
|
|
start_mappe = os.getcwd()
|
|
|
|
print(f"Starter skanning i: {start_mappe}")
|
|
print(f"Lagrer til: {OUTPUT_FILNAVN} ...")
|
|
|
|
teller = 0
|
|
|
|
with open(OUTPUT_FILNAVN, 'w', encoding='utf-8') as ut_fil:
|
|
# Skriv en liten header til Gemini
|
|
ut_fil.write("Dette er kildekoden til et Android Studio-prosjekt.\n")
|
|
ut_fil.write("Hver fil er separert med overskrifter.\n\n")
|
|
|
|
# Gå gjennom alle mapper og filer
|
|
for root, dirs, files in os.walk(start_mappe):
|
|
# Fjern mapper vi vil ignorere slik at skriptet ikke går inn i dem
|
|
dirs[:] = [d for d in dirs if d not in IGNORER_MAPPER]
|
|
|
|
for fil in files:
|
|
if any(fil.endswith(ext) for ext in FILTYPER):
|
|
# Hopp over selve output-filen og script-filen
|
|
if fil == OUTPUT_FILNAVN or fil == os.path.basename(__file__):
|
|
continue
|
|
|
|
full_sti = os.path.join(root, fil)
|
|
relativ_sti = os.path.relpath(full_sti, start_mappe)
|
|
|
|
try:
|
|
with open(full_sti, 'r', encoding='utf-8') as inn_fil:
|
|
innhold = inn_fil.read()
|
|
|
|
# Lag en tydelig separator som Gemini forstår
|
|
ut_fil.write(f"\n{'='*60}\n")
|
|
ut_fil.write(f"FILSTI: {relativ_sti}\n")
|
|
ut_fil.write(f"{'='*60}\n")
|
|
ut_fil.write(innhold + "\n")
|
|
|
|
print(f"La til: {relativ_sti}")
|
|
teller += 1
|
|
except Exception as e:
|
|
print(f"Kunne ikke lese {relativ_sti}: {e}")
|
|
|
|
print(f"\nFerdig! Samlet {teller} filer i '{OUTPUT_FILNAVN}'.")
|
|
|
|
if __name__ == "__main__":
|
|
samle_filer()
|
|
input("\nTrykk Enter for å avslutte...")
|