Just give it a package name and it will collect info about it from your available package managers. It will show you an entry for each manager: a state and an optional version. There is three states:
- Installed
- Not installed, but available
- Not available (not found)
Oh and it sorts the results based on the state. And when the new table format is finally implemented it will be as compact and clean as possible.
[!WARNING]
boss
is still in development and far from being fully featured.
Tip
... but you can already use it anyways! Let me know how you like it.
open sesame
theres also a mind map that's a little more structured
- check all available package managers for a given package:
- if it's installed,
- if not, if it's available to download with a manager.
- show descriptions for available packages
- show the latest version of the package
- show the installed version of the package
- quiet flag to only return with 0 or 1
- interative flag to prompt the user
- continue with a prompt what to do (install, update, etc.)
- check for similar package names (like
pkg-cli
,pkg-git
,pkg-bin
,pkg-2
) - preferences (sorting of order of managers)
- outputs:
- pretty cliclack
- plain (dont use cliclack for output but plain text or markdown)
- table (use nu)
- read files instead of calling commands when possible
- check mutiple packages
- config file
- cache results for a day
- more checks (validate location, sourced in path, etc.)
- multithreading or async (main bottleneck right now are the individual managers)
- taking inspiration from topgrade on how to work with different managers.
- apt
- snap
- yay
- flatpak
- brew?
- pacman (if yay is not installed)
- paru (if yay is not installed)
- dnf?
- rpm?
- zypper?
- nix?
- cargo
- go (disabled for now)
- npm
- yarn?
- pip
- pypi?
- pipx?
- gem?
with cargo (recommended)
cargo install boss-cli
with cargo via git
cargo install --git https://github.com/NQMVD/boss.git
clone the repo (with gh)
gh repo clone NQMVD/boss
cd boss
cargo install --path .
clone the repo
git clone https://github.com/NQMVD/boss
cd boss
cargo install --path .
Note
binaries will be included at some point...
with cargo
cargo install boss-cli
with cargo-update
cargo install-update boss-cli
update the repo
git pull
cargo install --path .
- uses rust because of string processing capabilities and safety
- uses cliclack for the pretty structured output
- uses strp for parsing the command outputs
- calls shell commands
- works on Linux
- might work on macOS (will test with darling soon)
- won't work on Windows (also not planned to do so...)