mirror of
https://github.com/kirill-markin/repo-to-text.git
synced 2025-12-06 03:22:23 -08:00
commit
8bde83f9f1
1 changed files with 23 additions and 4 deletions
|
|
@ -1,17 +1,31 @@
|
|||
import os
|
||||
import subprocess
|
||||
import pathspec
|
||||
import shutil
|
||||
import logging
|
||||
import argparse
|
||||
import yaml
|
||||
from datetime import datetime
|
||||
import pyperclip
|
||||
|
||||
# Importing the missing pathspec module
|
||||
import pathspec
|
||||
|
||||
def setup_logging(debug=False):
|
||||
logging_level = logging.DEBUG if debug else logging.INFO
|
||||
logging.basicConfig(level=logging_level, format='%(asctime)s - %(levelname)s - %(message)s')
|
||||
|
||||
def check_tree_command():
|
||||
"""Check if the `tree` command is available, and suggest installation if not."""
|
||||
if shutil.which('tree') is None:
|
||||
print("The 'tree' command is not found. Please install it using one of the following commands:")
|
||||
print("For Debian-based systems (e.g., Ubuntu): sudo apt-get install tree")
|
||||
print("For Red Hat-based systems (e.g., Fedora, CentOS): sudo yum install tree")
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_tree_structure(path='.', gitignore_spec=None, tree_and_content_ignore_spec=None) -> str:
|
||||
if not check_tree_command():
|
||||
return ""
|
||||
|
||||
logging.debug(f'Generating tree structure for path: {path}')
|
||||
result = subprocess.run(['tree', '-a', '-f', '--noreport', path], stdout=subprocess.PIPE)
|
||||
tree_output = result.stdout.decode('utf-8')
|
||||
|
|
@ -172,8 +186,13 @@ def save_repo_to_text(path='.', output_dir=None) -> str:
|
|||
repo_text = file.read()
|
||||
|
||||
# Copy the contents to the clipboard
|
||||
try:
|
||||
import pyperclip
|
||||
pyperclip.copy(repo_text)
|
||||
logging.debug('Repository structure and contents copied to clipboard')
|
||||
except Exception as e:
|
||||
logging.warning('Could not copy to clipboard. You might be running this script over SSH or without clipboard support.')
|
||||
logging.debug(f'Clipboard copy error: {e}')
|
||||
|
||||
return output_file
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue