mirror of
https://github.com/Pythagora-io/gpt-pilot.git
synced 2026-01-09 13:17:55 -05:00
Added a function that returns a directory tree
This commit is contained in:
@@ -38,4 +38,41 @@ def execute_command(command, timeout=5):
|
||||
if line:
|
||||
output += line
|
||||
|
||||
return output[-2000:]
|
||||
return output[-2000:]
|
||||
|
||||
def build_directory_tree(path, prefix="", ignore=None, is_last=False):
|
||||
"""Build the directory tree structure in tree-like format.
|
||||
|
||||
Args:
|
||||
- path: The starting directory path.
|
||||
- prefix: Prefix for the current item, used for recursion.
|
||||
- ignore: List of directory names to ignore.
|
||||
- is_last: Flag to indicate if the current item is the last in its parent directory.
|
||||
|
||||
Returns:
|
||||
- A string representation of the directory tree.
|
||||
"""
|
||||
if ignore is None:
|
||||
ignore = []
|
||||
|
||||
if os.path.basename(path) in ignore:
|
||||
return ""
|
||||
|
||||
output = ""
|
||||
indent = '| ' if not is_last else ' '
|
||||
|
||||
if os.path.isdir(path):
|
||||
# It's a directory, add its name to the output and then recurse into it
|
||||
output += prefix + "|-- " + os.path.basename(path) + "/\n"
|
||||
|
||||
# List items in the directory
|
||||
items = os.listdir(path)
|
||||
for index, item in enumerate(items):
|
||||
item_path = os.path.join(path, item)
|
||||
output += build_directory_tree(item_path, prefix + indent, ignore, index == len(items) - 1)
|
||||
|
||||
else:
|
||||
# It's a file, add its name to the output
|
||||
output += prefix + "|-- " + os.path.basename(path) + "\n"
|
||||
|
||||
return output
|
||||
|
||||
Reference in New Issue
Block a user