Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bash-bastion/basalt
The rock-solid Bash package manager.
https://github.com/bash-bastion/basalt
basalt bash bash-script fish package-management package-manager script scripts shell shell-script zsh
Last synced: 8 days ago
JSON representation
The rock-solid Bash package manager.
- Host: GitHub
- URL: https://github.com/bash-bastion/basalt
- Owner: bash-bastion
- License: mpl-2.0
- Created: 2021-06-26T08:45:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-13T09:36:44.000Z (10 months ago)
- Last Synced: 2024-08-02T09:27:36.914Z (3 months ago)
- Topics: basalt, bash, bash-script, fish, package-management, package-manager, script, scripts, shell, shell-script, zsh
- Language: Shell
- Homepage: https://bash-bastion.github.io/basalt/
- Size: 4.2 MB
- Stars: 67
- Watchers: 4
- Forks: 1
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
- Support: docs/support.md
Awesome Lists containing this project
- awesome-bash - basalt - The rock-solid Bash package manager. (Package Managers and Tools / Reusable Things)
README
# basalt
The rock-solid Bash package manager
STATUS: BETA (expect breaking changes until a post-beta release)
---
`basalt` is a rewritten fork of [basher](https://github.com/basherpm/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](https://aur.archlinux.org)
Let's say you want to install [rupa/z](https://github.com/rupa/z), [tj/git-extras](https://github.com/tj/git-extras), [aristocratos/bashtop](https://github.com/aristocratos/bashtop), and [JosefZIla/bash2048](https://github.com/JosefZIla/bash2048). Simply run the following
```sh
$ 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
```sh
$ 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](./scripts/install.sh) already does this for you
```sh
# ~/.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](./docs/tutorials/installation.md) and [Getting Started](./docs/tutorials/getting-started.md) for more details
## Features
- Install most Bash/Zsh/Fish projects out of the box
- Local Bash packages (Awk/Zsh/Fish/Ksh,Powershell coming later)
- Custom builtins for Bash packages (not yet implemented)
- Robust (lockfile usage, transaction rollback (not yet implemented), great error handling)
- Bundle (bundle a project and its dependencies into a single file) (not yet implemented)## Ecosystem
Because of Basalt, I've been able to make
- [bake](https://github.com/hyperupcall/bake) - A Bash-based Make alternative
- [woof](https://github.com/hyperupcall/woof) - The version manager to end all version managers
- [bash-object](https://github.com/hyperupcall/bash-object) - Manipulate heterogenous data hierarchies in Bash
- [bash-term](https://github.com/hyperupcall/bash-term) - Bash library for terminal escape sequences.See the full list [awesome-basalt](https://github.com/hyperupcall/awesome-basalt) and at the GitHub organization [bash-bastion](https://github.com/bash-bastion).
## License
Original code is licensed under `MIT` by Juan Ibiapina. Modifications are licensed under `BSD-3-Clause` by Edwin Kofler