🅷📦 - hbox
hbox is a Command Line Interface (CLI) that leverages container technology to manage packages, powered by Rust 🦀.
Features
hbox offers the following features:
- Container Isolation: hbox uses containers to isolate packages, allowing multiple versions of a package to coexist without conflict.
- Robust Configuration Options: hbox enables high customization through configuration files. You can define package aliases and setup automatic volume mounts via
config.json. - Support for Pipes: hbox supports the use of pipes in
hbox run, which allows you to chain commands efficiently. - Convenient Shims: hbox creates
shims(alias shortcuts) for all installed packages, simplifying command entry fromhbox run <package alias> <commands>to<package alias> <commands>.
Commands
)
Installation
To install hbox via cargo, run the following command:
Setup
Shims and Shell Configuration
hbox utilizes shims and a configuration file to effectively manage your installed packages. For the successful addition of $HBOX_DIR/shims at the correct priority level to your path, these lines of code should be added to your .bashrc or .zshrc file:
Configuration via config.json
The configuration of packages in hbox is managed by the $HBOX_DIR/config.json file. This file, which is created automatically upon adding a package, contains information such as package aliases pointing to multiple registries and volume mounts:
You can use the config.json to also override the registry of any container image. By default, we pull from docker.io.
Package Version Management via versions.json
hbox also creates and maintains a $HBOX_DIR/versions.json file that keeps track of the current version of each package. This file is under the management of hbox itself and shouldn't be manually edited:
Usage
Below are some examples demonstrating how you can use hbox:
> hbox
> hbox
> hbox
> hbox
> jq
> hbox
> hbox
> hbox
> node
> hbox
> hbox
> node
> hbox
> node
> hbox
These examples should provide a quick start guide for you to understand the basic operations that you can perform with hbox.
If you want to see my ideas for the future of the project, check out the ROADMAP.