MrMineDe / pakt

Pacman Shell Wrapper, to order and manager your packages in easy text files
GNU General Public License v2.0
2 stars 1 forks source link

Pakt

Pakt (PAcman KaTegories) is a POSIX-compliant Pacman shell wrapper for categorizing packages.

What are categories?

You can order the packages you install in categories. They are stored in plain text files at $XDG_DATA_HOME/pakt/, like this:

> cat ~/.local/share/pakt/dev
emacs
typescript
clang
rustup

Examples

# pakt can act as a replacement of pacman ...
pakt -S neovim

# ... and as a wrapper for your AUR helper
pakt -S neovim-git

# Installs neovim and assigns the `editors` category
pakt -S neovim +editors

# Installs firefox and assigns the categories `gui` and `all`
pakt -S firefox +gui +all

# Performs system update, installs htop and lf both in `cli`,
# firefox in `basic` but git only in the default categories (if any configured)
pakt -Syu htop lf +cli firefox +basic git

Use cases

Installation

git clone https://github.com/mrminede/pakt
cd pakt
sudo sh install.sh

When you're done, you can remove the source code directory.

Uninstallation

curl -LsS https://raw.githubusercontent.com/mrminede/pakt/main/uninstall.sh | sudo sh

Or if you still have the source code directory:

cd path/to/pakt
sudo sh uninstall.sh

Configuration

The configuration is usually done in /etc/pakt.conf. By exporting a PAKT_CONF_PATH in your shell config (e.g. ~/.bashrc), you can set another path for pakt.conf.

In the file, you can choose an AUR helper for Pakt to wrap around, or just keep Pacman.

You can also assign multiple categories that package names go into by default. Out of the box, it's just default. But you can also set none.

TODO

See the todo project and the respective issues