# Dirt(r)ee A CLI tool for printing the structure of a given directory in a tree. ## Overview Dirt(r)ee is a command-line interface (CLI) tool built in Rust that generates a tree representation of a directory structure. It's designed to provide a clear view of file and directory arrangements, supporting various features like including hidden files, respecting `.gitignore` rules, customizable spacing, and output customization. ## Features - **Tree Generation**: Visually represents the directory structure in a tree format. - **Hidden Files**: Option to include hidden files in the tree. - **Git Ignore Support**: Respects `.gitignore` files to exclude certain files and directories. - **Custom Spacing**: Allows customizing the spacing in the tree structure for better readability. - **Clipboard Support**: Provides an option to copy the generated tree to the clipboard. - **Output Customization**: Adds a prefix to each line and outputs the tree to a specified file. - **File Output**: Offers the ability to write the tree structure to a file. - **Prefix Customization**: Allows adding a custom prefix to each line of the output. - **Parallel Processing**: Leverages Rust's `rayon` crate for efficient directory traversal. ## Installation You can compile dirt(r)ee on your own architecture using `cargo install`, or with Homebrew on an M1 Macbook (Intel based Macs might work - I haven't tried. Let me know if you do!) More installation options coming soon! ### Homebrew (MacOS - M1) ```bash brew tap calthejuggler/dirtee brew install dirtee ``` ### Cargo Install To install Dirt-r-ee, you need Rust and Cargo installed on your system. If you don't have them installed, you can follow the instructions [here](https://doc.rust-lang.org/cargo/getting-started/installation.html) to install them. Once you have Rust and Cargo installed, you can install Dirt-r-ee using Cargo: ```bash cargo install dirt-r-ee ``` ## Usage Run Dirt-r-ee from the command line. The basic command structure is as follows: ```bash dirtee [OPTIONS] [PATH] # PATH defaults to the current directory ``` ### Options - `-d`, `--dir