From 891808766de69b9c3143143a2b220e43ed3cdfee Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 27 Jan 2008 20:43:21 +0100 Subject: Import plugin for bzr that can run the etckeeper pre-commit script. --- etckeeper.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 etckeeper.py diff --git a/etckeeper.py b/etckeeper.py new file mode 100644 index 0000000..ad73853 --- /dev/null +++ b/etckeeper.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# bzr plugin that runs etckeeper pre-commit when necessary + +from bzrlib.branch import Branch +from bzrlib.errors import BzrError +import os +import subprocess + +def branch_pre_commit_hook(local, master, old_revno, old_revid, + new_revno, new_revid, tree_delta, future_tree): + if local is None: + branch = master + else: + branch = local + base = branch.bzrdir.root_transport.local_abspath(".") + if not os.path.exists(os.path.join(base, ".etckeeper")): + return + ret = subprocess.call(["etckeeper", "pre-commit", base]) + if ret != 0: + raise BzrError("etckeeper pre-commit failed") + +Branch.hooks.install_hook('pre_commit', branch_pre_commit_hook) +Branch.hooks.name_hook(branch_pre_commit_hook, "shell-hooks") -- cgit v1.2.3