summaryrefslogtreecommitdiff
path: root/config-etckeeper.PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'config-etckeeper.PKGBUILD')
-rw-r--r--config-etckeeper.PKGBUILD33
1 files changed, 32 insertions, 1 deletions
diff --git a/config-etckeeper.PKGBUILD b/config-etckeeper.PKGBUILD
index 75f0af1..88aa419 100644
--- a/config-etckeeper.PKGBUILD
+++ b/config-etckeeper.PKGBUILD
@@ -1,5 +1,5 @@
. ${BUILDFILE%/*}/common.sh
-pkgver=20160713.8
+pkgver=20160713.11
depends=(etckeeper pristine-etc-keeper)
@@ -32,6 +32,37 @@ add-file -m755 etc/etckeeper/commit.d/40git-ignore <<EOF
git ls-files --ignored --exclude-standard -z|xargs -0r git rm --cached --
EOF
+# etckeepr has been configured to run the pre-commit hook at exta
+# times, to work around a bug[0].
+#
+# [0]: https://etckeeper.branchable.com/todo/metadata_changes_don__39__t_cause_a_new_commit/
+add-file -m755 etc/etckeeper/unclean.d/20pre-commit <<EOF
+#!/bin/sh
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+set -e
+etckeeper pre-commit -d /etc
+EOF
+add-file -m755 etc/etckeeper/commit.d/20pre-commit <<EOF
+#!/bin/sh
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+set -e
+etckeeper pre-commit -d /etc
+EOF
+
+# It as also been configured to maintain a list of installed packages
+# as `/etc/.installed-packages.txt`.
+add-file -m755 etc/etckeeper/pre-commit.d/25list-installed <<EOF
+#!/bin/sh
+
+etckeeper list-installed > .installed-packages.txt
+
+# stage the file as part of the current commit
+if [ "\$VCS" = git ]; then
+ # this will do nothing if the file is unchanged.
+ git add .installed-packages.txt
+fi
+EOF
+
# The etckeeper update-ignore hook is customized to ignore a couple
# more files in `/etc` (and avoid ignoring `/etc/mtab`). We ignore
# `resolv.conf` because it is managed by [resolvconf][openresolv].