3 releases (breaking)

0.3.0 Jan 9, 2024
0.2.0 Dec 22, 2023
0.1.0 Nov 30, 2023

#24 in #root-directory

MIT license

19KB
141 lines

Toor

Find project root.

Build status Sponsor me


Say goodbye to the tedious dance of cd ..; cd..; cd.. (10x) or convoluted aliases like .., ...., ......... Embrace simplicity with just one command -- introducing toor. Bind it to your favorite shell, and voila! A single r keystroke transports you straight to the root directory. Effortlessly elevate your command line experience with a touch of magic.

Features

  • Fancy error message and colorful output.
  • Cross-platform and single binary.

Usage

🦄 toor --help

rust on master is 📦 v0.1.0 via 🦀 v1.74.0
🦄 toor
/home/user/playground/rust

~/playground
🦄 toor
Error: toor::no_project_root (link)

  × Project root is not found.
  help: Make sure the project root exists.

Integration With Other Tools

Fish Shell

#
# toor
function r # root
    set project_root (toor 2>/dev/null)

    if test -n "$project_root"
        # If successful, change to the project root directory
        cd "$project_root"
        echo "Changed to project root: $project_root"
    else
        # If not successful, stay in current directory
        echo "Project root not found. I dont' go anywhere 📍"
    end
end

Installation

From Binaries

The release page includes pre-compiled binaries for GNU/Linux, macOS, and Windows.

From Source

Using cargo-binstall

$ cargo binstall toor

Using Rust's package manager cargo:

$ cargo install toor

Development

git clone https://github.com/azzamsa/toor

# Build
cd toor
cargo build

# Run unit tests and integration tests
cargo test

# Install
cargo install --path .

Contributing

To learn more read the development guide

Origin of The Name

The term "toor" is a whimsical variation of "root".

Credits

Dependencies

~5–11MB
~127K SLoC