detect if tree is missing

This commit is contained in:
Luca Gibelli 2024-06-14 20:04:54 +02:00
parent 57f2e65a68
commit d5cc239e64

View file

@ -6,12 +6,25 @@ import argparse
import yaml import yaml
from datetime import datetime from datetime import datetime
import pyperclip import pyperclip
import shutil
def setup_logging(debug=False): def setup_logging(debug=False):
logging_level = logging.DEBUG if debug else logging.INFO logging_level = logging.DEBUG if debug else logging.INFO
logging.basicConfig(level=logging_level, format='%(asctime)s - %(levelname)s - %(message)s') 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: 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}') logging.debug(f'Generating tree structure for path: {path}')
result = subprocess.run(['tree', '-a', '-f', '--noreport', path], stdout=subprocess.PIPE) result = subprocess.run(['tree', '-a', '-f', '--noreport', path], stdout=subprocess.PIPE)
tree_output = result.stdout.decode('utf-8') tree_output = result.stdout.decode('utf-8')