Gentoo Archives: gentoo-commits

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/etckeeper/, sys-apps/etckeeper/files/
Date: Mon, 13 Sep 2021 10:35:01
Message-Id: 1631529262.e5c878662182c4bd4de1a090dd0ae8166b483919.gyakovlev@gentoo
1 commit: e5c878662182c4bd4de1a090dd0ae8166b483919
2 Author: Florian Schmaus <flow <AT> gentoo <DOT> org>
3 AuthorDate: Mon Aug 23 07:15:29 2021 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Mon Sep 13 10:34:22 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5c87866
7
8 sys-apps/etckeeper: install conf-update.d hook
9
10 In newer versions of portage (> 3.0.22), dispatch-conf will invoke
11 hooks found in /etc/portage/update-conf.d. See also portage commit
12 6e86186244d0 ("dispatch-conf: Add support for conf-update.d hook
13 directory") [1].
14
15 1:
16 https://gitweb.gentoo.org/proj/portage.git/commit/?id=6e86186244d048e3edd5c11c18cfb4eee98a0d56
17
18 Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
19 Closes: https://github.com/gentoo/gentoo/pull/22075
20 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
21
22 ...-1.18.16.ebuild => etckeeper-1.18.16-r1.ebuild} | 5 ++++
23 .../etckeeper/files/etckeeper-conf-update-hook | 32 ++++++++++++++++++++++
24 2 files changed, 37 insertions(+)
25
26 diff --git a/sys-apps/etckeeper/etckeeper-1.18.16.ebuild b/sys-apps/etckeeper/etckeeper-1.18.16-r1.ebuild
27 similarity index 91%
28 rename from sys-apps/etckeeper/etckeeper-1.18.16.ebuild
29 rename to sys-apps/etckeeper/etckeeper-1.18.16-r1.ebuild
30 index 7338b278ab3..0591f38928e 100644
31 --- a/sys-apps/etckeeper/etckeeper-1.18.16.ebuild
32 +++ b/sys-apps/etckeeper/etckeeper-1.18.16-r1.ebuild
33 @@ -71,6 +71,11 @@ if [ -e /etc/etckeeper/daily ] && [ -e /etc/etckeeper/etckeeper.conf ]; then
34 fi
35 _EOF_
36 fi
37 +
38 + local conf_update_dir="/etc/portage/conf-update.d"
39 + insinto "${conf_update_dir}"
40 + newins "${FILESDIR}/${PN}-conf-update-hook" "${PN}"
41 + fperms 755 "${conf_update_dir}/${PN}"
42 }
43
44 pkg_postinst() {
45
46 diff --git a/sys-apps/etckeeper/files/etckeeper-conf-update-hook b/sys-apps/etckeeper/files/etckeeper-conf-update-hook
47 new file mode 100644
48 index 00000000000..d0546c8776d
49 --- /dev/null
50 +++ b/sys-apps/etckeeper/files/etckeeper-conf-update-hook
51 @@ -0,0 +1,32 @@
52 +#!/usr/bin/env bash
53 +set -eu
54 +
55 +# etckeeper hook for portage's conf-update hooks (e.g. invoked by
56 +# dispatch-conf). Requires portage > 3.0.22.
57 +
58 +# Do nothing if etckeeper is not initialized.
59 +if [[ ! -f "/etc/etckeeper/etckeeper.conf" ]]; then
60 + exit
61 +fi
62 +
63 +echo "conf-update.d ${@}"
64 +
65 +case "${1}" in
66 + pre-session)
67 + echo "Commiting uncommited changes before starting a configuration update session"
68 + etckeeper pre-install
69 + ;;
70 + post-session)
71 + echo "Commiting uncommited changes before after finishing a configuration update session"
72 + etckeeper post-install
73 + ;;
74 + post-update)
75 + ACTION=${1}
76 + FILE_PATH=${2}
77 + FILE=$(basename "${FILE_PATH}")
78 +
79 + echo "Commiting changes for ${FILE}"
80 + etckeeper vcs add "${FILE_PATH}"
81 + etckeeper vcs commit -m "${FILE}: ${ACTION} (conf-update.d hook)"
82 + ;;
83 +esac