10df745
From b5919d7919dda614c3c3c76ba126f45e205494bd Mon Sep 17 00:00:00 2001
10df745
From: Dimitri John Ledkov <xnox@ubuntu.com>
10df745
Date: Mon, 29 Apr 2019 14:11:09 +0100
10df745
Subject: [PATCH 1/3] Add breezy python3 plugin
10df745
10df745
---
10df745
 Makefile                  |  3 +++
10df745
 debian/changelog          |  6 ++++++
10df745
 debian/control            |  6 +++---
10df745
 etckeeper-brz/__init__.py | 34 ++++++++++++++++++++++++++++++++++
10df745
 4 files changed, 46 insertions(+), 3 deletions(-)
10df745
 create mode 100644 etckeeper-brz/__init__.py
10df745
10df745
Index: etckeeper-1.18.10/etckeeper-brz/__init__.py
10df745
===================================================================
10df745
--- /dev/null
10df745
+++ etckeeper-1.18.10/etckeeper-brz/__init__.py
10df745
@@ -0,0 +1,34 @@
10df745
+#
10df745
+# Breezy plugin that runs etckeeper pre-commit when necessary
10df745
+
10df745
+"""Runs etckeeper pre-commit when necessary."""
10df745
+
10df745
+from breezy.errors import BzrError
10df745
+import os
10df745
+
10df745
+def etckeeper_startcommit_hook(tree):
10df745
+    abspath = getattr(tree, "abspath", None)
10df745
+    if abspath is None or not os.path.exists(abspath(".etckeeper")):
10df745
+        # Only run the commit hook when this is an etckeeper branch
10df745
+        return
10df745
+    import subprocess
10df745
+    ret = subprocess.call(["etckeeper", "pre-commit", abspath(".")])
10df745
+    if ret != 0:
10df745
+        raise BzrError("etckeeper pre-commit failed")
10df745
+
10df745
+try:
10df745
+    from breezy.hooks import install_lazy_named_hook
10df745
+except ImportError:
10df745
+    from breezy.mutabletree import MutableTree
10df745
+    MutableTree.hooks.install_named_hook('start_commit',
10df745
+        etckeeper_startcommit_hook, 'etckeeper')
10df745
+else:
10df745
+    install_lazy_named_hook(
10df745
+        "breezy.mutabletree", "MutableTree.hooks",
10df745
+        'start_commit', etckeeper_startcommit_hook, 'etckeeper')
10df745
+
10df745
+if __name__ == "__main__":
10df745
+    from distutils.core import setup
10df745
+    setup(name="brz-etckeeper",
10df745
+          packages=["breezy.plugins.etckeeper"],
10df745
+          package_dir={"breezy.plugins.etckeeper":"etckeeper-brz"})