Permalink
Browse files

* Added configuration options for highlevel and lowlevel package man…

…agers

    in etckeeper.conf.
  * Only install apt hooks if apt is used.
  * Only add backup conffile exclusion to gitignore if dpkg is used.
  * Rename pre/post-apt.d to pre/post-install.d to allow the same directories
    to be used for other package managers.
  * Use the name of the highlevel package manager in commit messages.
  • Loading branch information...
1 parent 3021117 commit ef70e3d7e62671d0cadb2731e6965768f73ca290 Joey Hess committed Jan 4, 2008
View
@@ -0,0 +1,5 @@
+Before running 'make install', you should edit etckeeper.conf and make sure
+it configured appropriately for your distribution.
+
+Distribution packagers may find it more convenient to set CONFFILE to point
+to a different etckeeper.conf that is preconfigured for your distribution.
View
@@ -1,8 +1,15 @@
+# You should configure etckeeper.conf for your distribution before
+# installing etckeeper.
+CONFFILE=etckeeper.conf
+include $(CONFFILE)
+
install:
mkdir -p $(PREFIX)/etc/etckeeper/
cp -a *.d $(PREFIX)/etc/etckeeper/
- cp etckeeper.conf $(PREFIX)/etc/etckeeper/
+ cp $(CONFFILE) $(PREFIX)/etc/etckeeper/etckeeper.conf
install -D etckeeper $(PREFIX)/usr/bin/etckeeper
- install -m 0644 -D apt.conf $(PREFIX)/etc/apt/apt.conf.d/05etckeeper
install -m 0644 -D etckeeper.1 $(PREFIX)/usr/share/man/man1/etckeeper.1
- install -m 0644 -D bash_completion $(PREFIX)/etc/bash_completion.d/etckeeper
+ install -m 0644 -D bash_completion $(PREFIX)/etc/bash_completion.d/etckeeper
+ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),apt))
+ install -m 0644 -D apt.conf $(PREFIX)/etc/apt/apt.conf.d/05etckeeper
+endif
View
8 README
@@ -33,8 +33,8 @@ So don't use it on git repositories from untrusted sources.
etckeeper has special support to handle changes to /etc caused by
installing and upgrading packages. Before apt installs packages,
-`etckeeper pre-apt` will check that /etc contains no uncommitted changes.
-After apt installs packages, `etckeeper post-apt` will add any new
+`etckeeper pre-install` will check that /etc contains no uncommitted changes.
+After apt installs packages, `etckeeper post-install` will add any new
interesting files to the repository, and commit the changes.
git is designed as a way to manage source code, not as a way to manage
@@ -143,7 +143,7 @@ action.
For example, here's how to configure it to run `git gc` after each apt run,
which will save a lot of disk space:
- cd /etc/etckeeper/post-apt.d
+ cd /etc/etckeeper/post-install.d
(echo '#!/bin/sh' ; echo 'exec git-gc') > 99git-gc
chmod +x 99git-gc
git add .
@@ -152,7 +152,7 @@ which will save a lot of disk space:
Here's how to disable the automatic commits after each apt run, while still
letting it git-add new files and git-rm removed ones:
- chmod -x /etc/etckeeper/post-apt.d/75git-commit
+ chmod -x /etc/etckeeper/post-install.d/75git-commit
Note that the etckeeper commands are careful to not hardcode anything about
git. If you want to use some other revision control system, that's
View
11 TODO
@@ -17,7 +17,10 @@
in one repo, and public in another. This would need either symlink
farming or git "fake bare" repos, both of which are not pleasant, yet.
- Another way would be to allow splitting out subdirs into their own
- repos. This is already doable, would just need modifying the pre-apt and
- post-apt stuff (ie, it needs to commit in the subdirs too). Using
- mr would be a possibility..
+ Another way would be to allow splitting out subdirs into their own repos.
+ This is already doable, would just need modifying the pre-install and
+ post-instlal stuff (ie, it needs to commit in the subdirs too). Using mr
+ would be a possibility..
+
+* Figure out what packages were acted on, and include that info in the commit
+ message
View
@@ -1,2 +1,2 @@
-DPkg::Pre-Install-Pkgs { "if [ -x /usr/bin/etckeeper ]; then etckeeper pre-apt; fi"; };
-DPkg::Post-Invoke { "if [ -x /usr/bin/etckeeper ]; then etckeeper post-apt; fi"; };
+DPkg::Pre-Install-Pkgs { "if [ -x /usr/bin/etckeeper ]; then etckeeper pre-install; fi"; };
+DPkg::Post-Invoke { "if [ -x /usr/bin/etckeeper ]; then etckeeper post-install; fi"; };
View
@@ -1,3 +1,15 @@
+etckeeper (0.7) UNRELEASED; urgency=low
+
+ * Added configuration options for highlevel and lowlevel package managers
+ in etckeeper.conf.
+ * Only install apt hooks if apt is used.
+ * Only add backup conffile exclusion to gitignore if dpkg is used.
+ * Rename pre/post-apt.d to pre/post-install.d to allow the same directories
+ to be used for other package managers.
+ * Use the name of the highlevel package manager in commit messages.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 03 Jan 2008 20:43:23 -0500
+
etckeeper (0.6) unstable; urgency=low
* Depend on a fairly recent git-core. Closes: #453063
View
@@ -8,6 +8,12 @@ fi
if [ ! -z "$GIT_COMMIT_OPTIONS" ]; then
export GIT_COMMIT_OPTIONS
fi
+if [ ! -z "$HIGHLEVEL_PACKAGE_MANAGER" ]; then
+ export HIGHLEVEL_PACKAGE_MANAGER
+fi
+if [ ! -z "$LOWLEVEL_PACKAGE_MANAGER" ]; then
+ export LOWLEVEL_PACKAGE_MANAGER
+fi
if [ -z "$1" ]; then
echo "usage: etckeeper command [directory]" >&2
View
@@ -21,13 +21,14 @@ a clone of the /etc repository located elsewhere.
This is called as a git pre-commit hook. It stores metadata and does sanity
checks.
.TP
-.B pre-apt
-This is called by apt's DPkg::Pre-Install-Pkgs hook. It allows committing
-any uncommitted changes before the apt run.
+.B pre-install
+This is called by apt's DPkg::Pre-Install-Pkgs hook, or by equivilant hooks
+of other package managers. It allows committing any uncommitted changes before
+packages are installed, upgraded, etc.
.TP
-.B post-apt
-This is called by apt's DPkg::Post-Invoke hook. It commits changes made by
-packages into the repository. (You can also call this by hand after running
-dpkg by hand.)
+.B post-install
+This is called by apt's DPkg::Post-Invoke hook, or by equivilant hooks
+of other package managers. It commits changes made by packages into the
+repository. (You can also call this by hand after running dpkg by hand.)
.SH AUTHOR
Joey Hess, <joey@kitenet.net>.
View
@@ -2,3 +2,9 @@
# You could for exemple use "-e" if you want to edit all commit messages
# before committing.
#GIT_COMMIT_OPTIONS="-e"
+
+# The high level package manager that's being used.
+HIGHLEVEL_PACKAGE_MANAGER=apt
+
+# The low-level package manager that's being used.
+LOWLEVEL_PACKAGE_MANAGER=dpkg
View
@@ -1,11 +1,14 @@
#!/bin/sh
set -e
if [ ! -e .gitignore ]; then
- cat >.gitignore <<EOF
-*~
-
+ if [ "$LOWLEVEL_PACKAGE_MANAGER" = dpkg ]; then
+ cat >.gitignore <<EOF
# new and old versions of conffiles, stored by dpkg
*.dpkg-*
+EOF
+ fi
+ cat >>.gitignore <<EOF
+*~
# mount(8) records system state here, no need to keep these in git
blkid.tab
View
@@ -1,2 +0,0 @@
-Files in this directory are run after apt has run. They should commit
-changes and new files in /etc to repository.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -2,10 +2,7 @@
set -e
if [ -d .git ]; then
-
- # TODO: figure out what packages were acted on by the apt run, and
- # include that info in the commit message
- message="committing changes after apt run"
+ message="committing changes after $HIGHLEVEL_PACKAGE_MANAGER run"
# ignore exit code since it exits nonzero if there is nothing to do
git commit $GIT_COMMIT_OPTIONS -m "$message" || true
View
@@ -0,0 +1,2 @@
+Files in this directory are run after packages are installed, upgraded, etc.
+They should commit changes and new files in /etc to repository.
View
@@ -1,2 +0,0 @@
-Files in this directory are run before apt is run. This is mostly used for
-sanity checks, ie, does /etc have any uncommitted changes?
@@ -12,7 +12,7 @@ if [ -d .git ] && ! LANG=C git-status 2>&1 | grep -q "working directory clean";
db_get etckeeper/unclean
if [ "$RET" = true ]; then
git add .
- if ! git commit $GIT_COMMIT_OPTIONS -m "saving uncommitted changes in /etc prior to apt run"; then
+ if ! git commit $GIT_COMMIT_OPTIONS -m "saving uncommitted changes in /etc prior to $HIGHLEVEL_PACKAGE_MANAGER run"; then
db_input critical etckeeper/commit_failed || true
db_go || true
db_reset etckeeper/commit_failed || true
View
@@ -0,0 +1,3 @@
+Files in this directory are run before packages are installed, upgraded,
+etc. This is mostly used for sanity checks, ie, does /etc have any
+uncommitted changes?

0 comments on commit ef70e3d

Please sign in to comment.