Home

Awesome

basalt

The rock-solid Bash package manager

STATUS: BETA (expect breaking changes until a post-beta release)


basalt is a rewritten fork of basher that adds a ton of new functionality. It makes it significantly easier to install Bash, Zsh, etc. projects to your computer. Often, these projects/scripts are not available through official apt, DNF, pacman repositories, or even from unofficial sources like third-party apt repositories or the AUR

<!--alex ignore simple-->

Let's say you want to install rupa/z, tj/git-extras, aristocratos/bashtop, and JosefZIla/bash2048. Simply run the following

$ basalt global add rupa/z tj/git-extras aristocratos/bashtop JosefZIla/bash2048

This symlinks all executable scripts to a common directory. It does this for completion files and manpages as well

$ exa -l --no-permissions --no-filesize --no-user ~/.local/share/basalt/global/bin/
bash2048.sh -> .../.local/share/basalt/store/packages/github.com/JosefZIla/bash2048@.../bash2048.sh
bashtop -> .../.local/share/basalt/store/packages/github.com/aristocratos/bashtop@.../bashtop
git-alias -> .../.local/share/basalt/store/packages/github.com/tj/git-extras@.../bin/git-alias
git-archive-file -> .../.local/share/basalt/store/packages/github.com/tj/git-extras@.../bin/git-archive-file
...

To be able to access the binaries, completion files, and manpages in your shell, add a two-liner in your shell configuration. The installation script already does this for you

# ~/.bashrc
export PATH="${XDG_DATA_HOME:-$HOME/.local/share}/basalt/source/bin:$PATH"
eval "$(basalt global init bash)" # zsh and fish are also supported

NOTE: Basalt is currently BETA. There are known bugs that will be fixed. I highly recommended to wait until v1.0.0 before trying anything out

See Installation and Getting Started for more details

Features

Ecosystem

Because of Basalt, I've been able to make

See the full list awesome-basalt and at the GitHub organization bash-bastion.

License

Original code is licensed under MIT by Juan Ibiapina. Modifications are licensed under BSD-3-Clause by Edwin Kofler