Skip to content

A gentle, declarative pacman wrapper for Arch Linux

License

Notifications You must be signed in to change notification settings

nicmr/impaccable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

impaccable

A gentle declarative pacman wrapper for Arch Linux.

Hint: This CLI is in active development, breaking changes may occur.

Key features

  • store your installed packages in git, like you'd store your dotfiles
  • easily editable toml files
  • group your packages logically
  • reference the groups you want to have installed per machine

Usage scenarios

  1. Importing your installed packages step by step
mkdir ~/.config/impaccale && cd ~/.config/impaccable && git init
impaccable import
git commit -m "Added my system packages"
# add remote and push ...
  1. resulting config example
# ~/.config/config.toml
package_dir = "packages"

[targets.dev_machine]
root_groups = ["programming"]

[targets.home_server]
root_groups = ["server-base"]
# ~/.config/impaccable/packages/mypackage.toml
[programming]
members = ["rustup", "helix", "code"]

[server-base]
members = ["nginx"]
  1. Setting up a new machine
git clone https://git.example.com/my/impaccable-config ~/.config/impaccable
# select one of your configured machine types ('targets')
impaccable target set dev_machine
# install all packages
impaccable sync

# now use your favourite dotfile manager to get your configs

Installation

Install from source

# directly from git
cargo install --git https://github.com/nicmr/impaccable
# clone the repo
git clone https://github.com/nicmr/impaccable && cd impaccable
# install with cargo
cargo install --path .

About

A gentle, declarative pacman wrapper for Arch Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages