Dead simple, memoized cargo subcommand to hoist cargo-built binaries into the current working directory, written in Rust.

Overview

cargo-hoist

CI Build Status Release Tag Build Status License Docs Latest Version rustc 1.70+

Dead simple cargo subcommand to hoist cargo-built binaries into scope. stable

Install | User Docs | Crate Docs | Reference | Contributing | License

What is cargo-hoist?

cargo-hoist is an ultra lightweight, dead simple cargo subcommand that memoizes cargo-built binaries using a global toml cache file. Since the global toml file contains a memoized list of the built binary paths, the hoist subcommand can then be used to manipulate cargo-built binaries in a whole variety of ways.

Primarily, binaries can be pulled into the current working directory using cargo hoist <bin name> (the default, flagless hoist command). To load the binary into path, you can run cargo hoist <bin name> --path.

Often, it's added overhead to remember where your binary is built within the target/.. directories. cargo-hoist makes it easy to find locally built binaries using the --list (or -l shorthand) flag.

Usage

Install cargo-hoist using cargo.

cargo install cargo-hoist

CLI Flags

Below is a manual output for v0.1.11. To generate a more up-to-date output, run cargo hoist --help.

Dead simple, memoized cargo subcommand to hoist cargo-built binaries into scope.

Usage: cargo hoist [OPTIONS] [COMMAND]

Commands:
  hoist     Hoist dependencies
  list      List registered dependencies
  search    Search for a binary in the hoist toml registry
  nuke      Nuke wipes the hoist toml registry
  register  Registers a binary in the global hoist toml registry
  help      Print this message or the help of the given subcommand(s)

Options:
  -v, --verbosity...  Verbosity level (0-4). Default: 0 (ERROR)
  -q, --quiet         Suppresses standard output
  -h, --help          Print help
  -V, --version       Print version

Contributing

Contributions of all forms are welcome and encouraged!

Please check existing issues for similar feature requests or bug reports.

Otherwise, feel free to open an issue if no relevant issue already exists.

License

This project is licensed under the MIT License.

Free and open-source, forever. All our rust are belong to you.

You might also like...
A dead simple functional testing tool for command line applications

Pharaoh : build that test pyramid! What it is Pharaoh is a dead simple, no permission needed, functional test runner for command line applications, wr

A Turing-complete but dead-simple spaced repetition CLI that helps you learn stuff.

Forne — Learn Stuff Forne is a Turing-complete spaced repetition engine to help you learn stuff your way. What does that mean? Well, there are a few p

Style terminal outputs in a minimal, macro-based, and dead simple way.

sty 🌈 $\mathbb{\color{red}{Style \ } \color{lightblue}{terminal}\ \color{black}{outputs \ }\color{gray}{\ in\ a} \color{magenta}{\ minimal}\color{gra

Adds back-and-forth jumping between current and previous focused windows to Sway.

sway-focus-back-and-forth Implements back-and-forth movement between the current and the previous focused windows. It also can be seen as a fix to thi

Sugar is an alternative to the current Metaplex Candy Machine CLI

Sugar: A Candy Machine CLI Sugar is an alternative to the current Metaplex Candy Machine CLI. It has been written from the ground up and includes seve

A crate providing a MemoryCell struct, which stores a current and previous value.

memcell What is a MemoryCell? A MemoryCell is a struct containing both a current and optional previous value. Definition #[derive(Debug, Clone)] pub s

A simple command line program to upload file or directory to web3.storage with optional encryption and compression
A simple command line program to upload file or directory to web3.storage with optional encryption and compression

w3s-cli A simple command line program to upload file or directory to web3.storage with optional encryption and compression. Features Uploads single fi

A simple tool to clean all projects in a directory.

Cargo Cleanall A simple tool to clean all cargo projects in a directory. Help Cargo plugin to clean all cargo projects in a directory Usage: cargo cl

The dead easy way to use config files in your rust project

Configr The dead easy way to use config files in your project This will load a config.toml file if it exists, otherwise it will create the needed fold

Comments
  • feat(search/find): Fuzzy Match Search Binary

    feat(search/find): Fuzzy Match Search Binary

    Description

    Currently, the search (aliased to find) subcommand does a simple exact comparison to search for existing registry binaries.

    It should perform a fuzzy search similar to cargo search which outputs the following:

    $ cargo search anyhow
    anyhow = "1.0.75"                          # Flexible concrete Error type built on std::error::Error
    anyhow_ext = "0.2.1"                       # Extension of anynow
    anyhow-std = "0.1.4"                       # Wrap std APIs with anyhow error context.
    sentry-anyhow = "0.31.7"                   # Sentry integration for anyhow. 
    async-anyhow-logger = "0.1.0"              # An easy crate for catching anyhow errors from an asynchronous function, and passing …
    ckb-sentry-anyhow = "0.21.0"               # Sentry integration for anyhow. 
    rocket_anyhow = "0.1.1"                    # throw any error inside rocket's route
    mangadex-api = "2.3.1"                     # SDK for the MangaDex API
    logerr = "0.2.0"                           # Seamless error type logging
    lmnkjgkj-std-backtrace-anyhow = "0.0.1"    # Fork of anyhow that uses backtrace from std
    ... and 644 crates more (use --limit N to see more)
    
    opened by refcell 0
A very simple third-party cargo subcommand to execute a custom command

cargo-x A very simple third-party cargo subcommand to execute a custom command Usage install cargo-x cargo install cargo-x or upgrade cargo install -

刘冲 9 Dec 26, 2022
a cargo subcommand for counting lines of code in Rust projects

cargo-count Linux: A cargo subcommand for displaying line counts of source code in projects, including a niave unsafe counter for Rust source files. T

Kevin K. 125 Dec 1, 2022
Cargo subcommand `release`: everything about releasing a rust crate.

cargo release Features Ensure you are in a good state for release, including: Right branch Up-to-date with remote Clean tree Supports workspaces using

null 933 Jan 8, 2023
Cargo script subcommand

cargo-script cargo-script is a Cargo subcommand designed to let people quickly and easily run Rust "scripts" which can make use of Cargo's package eco

Daniel Keep 643 Jan 3, 2023
A cargo subcommand for checking and applying updates to installed executables

cargo-update A cargo subcommand for checking and applying updates to installed executables Documentation Manpage Installation Firstly, ensure you have

наб 827 Jan 4, 2023
A cargo subcommand that displays ghidra function output through the use of the rizin rz-ghidra project.

cargo-rz-ghidra A cargo subcommand that displays ghidra function output through the use of the rizin rz-ghidra project. Install cargo install --git ht

wcampbell 4 Nov 5, 2022
Cargo subcommand to easily run targets/examples

cargo-select Cargo subcommand to easily run targets/examples/tests Fuzzy match against targets, examples or tests in current rust project. cargo-selec

null 13 Sep 15, 2022
🧰 Download pre-built binaries of all your favourite tools with a single command

tool-sync tool-sync is a CLI tool that solves one problem: ?? Download pre-built binaries of all your favourite tools with a single command. tool-sync

Dmitrii Kovanikov 50 Jan 1, 2023
Simple and lightweight tray icon that shows the current workspace for the Komorebi window manager.

komotray Simple and lightweight tray icon that shows the current workspace for the Komorebi window manager. This is a Rust rewrite of the original Aut

Joshua Park 8 Sep 27, 2024
A dead simple ANSI terminal color painting library for Rust.

yansi A dead simple ANSI terminal color painting library for Rust. use yansi::Paint; print!("{} light, {} light!", Paint::green("Green"), Paint::red(

Sergio Benitez 169 Dec 25, 2022