mirror of
https://github.com/kirill-markin/repo-to-text.git
synced 2025-12-05 19:12:24 -08:00
30 lines
No EOL
1 KiB
Python
30 lines
No EOL
1 KiB
Python
import os
|
|
import subprocess
|
|
|
|
def get_tree_structure(path='.') -> str:
|
|
result = subprocess.run(['tree', path], stdout=subprocess.PIPE)
|
|
return result.stdout.decode('utf-8')
|
|
|
|
def save_repo_to_text(path='.') -> None:
|
|
tree_structure: str = get_tree_structure(path)
|
|
with open('repo_structure.txt', 'w') as file:
|
|
file.write(tree_structure + '\n')
|
|
|
|
for root, _, files in os.walk(path):
|
|
for filename in files:
|
|
file_path: str = os.path.join(root, filename)
|
|
relative_path: str = os.path.relpath(file_path, path)
|
|
file.write(f'\n{relative_path}\n')
|
|
file.write('```\n')
|
|
try:
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
|
file.write(f.read())
|
|
except UnicodeDecodeError:
|
|
file.write('[Could not decode file contents]\n')
|
|
file.write('\n```\n')
|
|
|
|
def main() -> None:
|
|
save_repo_to_text()
|
|
|
|
if __name__ == '__main__':
|
|
main() |