4 releases

0.2.2 Dec 3, 2023
0.2.1 Nov 25, 2023
0.2.0 Nov 25, 2023
0.1.0 Nov 25, 2023

#1016 in Command line utilities

MIT license

1MB
274 lines

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)

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 to install them.

Once you have Rust and Cargo installed, you can install Dirt-r-ee using Cargo:

cargo install dirt-r-ee

Usage

Run Dirt-r-ee from the command line. The basic command structure is as follows:

dirtee [OPTIONS] [PATH] # PATH defaults to the current directory

Options

  • -d, --dir <DIRECTORY>: Specify the directory to print. Defaults to the current directory.
  • -s, --spacer <SPACER>: Custom spacer for indentation. Default is four spaces.
  • -i, --include-hidden: Include hidden files and directories in the output.
  • -g, --git-ignored: Include files and directories specified in .gitignore.
  • -c, --copy: Copy the output to the clipboard instead of printing it.
  • -p, --prefix <PREFIX>: Add a prefix to each line of the output. Default is "- ".
  • -o, --out-file <FILE>: Write the output to the specified file.
  • -V, --version: Show version information.
  • -h, --help: Show help information.

Examples

  • Display the current directory tree: dirtee
  • Display a specific directory: dirtee -d /path/to/dir
  • Include hidden files: dirtee -i
  • Copy the output to clipboard: dirtee -c
  • Use a custom prefix and write to a file: dirtee -p "-> " -o tree.txt

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

License

Distributed under the MIT License. See LICENSE for more information.

Dependencies

~2–13MB
~103K SLoC