Skip to content
/ pacwatch Public

A pacman wrapper that helps you watch important package updates.

License

Notifications You must be signed in to change notification settings

ouuan/pacwatch

Repository files navigation

pacwatch

pacwatch is a pacman wrapper which helps you watch important package updates.

AUR version

screenshot

Installation

yay -S pacwatch

Usage

Simply run python pacwatch.py, or pacwatch if you have installed it via AUR.

Arguments

  • -h, --help: how this help message and exit
  • --reset: reset settings to default
  • -e, --edit: edit the settings in $EDITOR
  • -v, --version: show program's version number and exit

Settings

The settings are stored in ~/.config/pacwatch/settings.yml.

The structure is:

settings_version: 2 # the version of the setting, used to detect incompatible changes
pacman_command: sudo pacman # for example, you can use "yay" instead
groups: # groups of package version changes, the output will be in the same order
  - epoch
  - major
  - major-two
  - minor
  - minor-two
  - single
  - patch
  - identifier
  - pkgrel
rules: # rules to determine the group of a package change, choose the first matching rule
  - regex: (?:(\d+):)?(\d+)\.(\d+)\.(\d+)(.*)-([^-]+) # each capture group of the regex is a part of the version
    parts: # the group of each part
      - epoch
      - major
      - minor
      - patch
      - identifier
      - pkgrel
  - regex: (?:(\d+):)?(\d+)\.(\d+)(.*)-([^-]+)
    parts:
      - epoch
      - major-two
      - minor-two
      - identifier
      - pkgrel
  - regex: (?:(\d+):)?(\w+)(.*)-([^-]+)
    parts:
      - epoch
      - single
      - identifier
      - pkgrel
verbose: # the rules which determines which packages to be highlighted, checked one by one from top to bottom
  - regex: .*
    groups:
    - not-installed # match all newly installed packages (they are usually new dependencies)
  - packages: # these packages match this rule
      - linux
    regex: linux-(lts|zen|hardened) # the packages which fully matches this regex also match this rule
    allGroups: true # no matter what group the matching packages are in, they use verbose output
  - packages:
      - systemd
    groups: # only if a mathcing package is in these groups, it uses verbose output
      - minor-two
  - regex: lib.+
    allGroups: true
    no_verbose: true # the opposite of other rules: it prevents the packages it applies to using verbose output
  - regex: .* # matches all packages, which can be considered as a fallback or a default rule
    groups:
      - minor
    explicitOnly: true # this rule only applies to explicitly installed packages, not dependencies
  - regex: .*
    groups:
      - epoch
      - major
      - major-two