diff --git a/README.md b/README.md index f374421..4574302 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Get started like so: In `pacman` on every `PreTransaction`, meaning right before any actual operation on a package begins, we trigger a ZFS snapshot. By default we identify the active system dataset by doing `findmnt / --noheadings --output source`. If exactly one source returns that is the exact name of a ZFS dataset in an imported zpool we create a snapshot on it. If no source returns we silently exit. If more than one source returns we raise an error and halt the `pacman` transaction. -We retain two different snapshot chains, one for `pacman` transactions that only affect what we are calling _trivial_ packages and a separate chain for _important_ packages. By default only the exact regular expression package name match `^linux$` is considered important. Whenever an important package is affected by a transaction a snapshot goes into the corresponding chain. In all other cases - when an important package is not affected - snapshots go into the trivial chain. +We retain two different snapshot chains, one for `pacman` transactions that only affect what we are calling _trivial_ packages and a separate chain for _important_ packages. By default only the exact regular expression package name match `^(linux)$` is considered important. Whenever an important package is affected by a transaction a snapshot goes into the corresponding chain. In all other cases - when an important package is not affected - snapshots go into the trivial chain. The _trivial_ snapshot chain by default keeps 15 snapshots, the _important_ chain keeps 5. The thought process here is that you will likely not futz around with a kernel every day whereas you may very well install arbitrary packages multiple times a day. Snapshots should keep you safe for a couple of days hence the defaults of 5 and 15 snapshots, respectively. diff --git a/pacman-zfs-snapshot.sh b/pacman-zfs-snapshot.sh index 9c2c21c..3882f4d 100755 --- a/pacman-zfs-snapshot.sh +++ b/pacman-zfs-snapshot.sh @@ -61,7 +61,7 @@ function split_pkgs_by_importance () { local pkgs_in_transaction pkgs_in_transaction=("${@}") for pkg in "${pkgs_in_transaction[@]}"; do - if grep -Piq -- '^'"${important_names}"'$' <<<"${pkg}"; then + if grep -Piq -- '^('"${important_names}"')$' <<<"${pkg}"; then important_pkgs_in_transaction+=("${pkg}") else trivial_pkgs_in_transaction+=("${pkg}")