Blob Blame Raw
From b5919d7919dda614c3c3c76ba126f45e205494bd Mon Sep 17 00:00:00 2001
From: Dimitri John Ledkov <xnox@ubuntu.com>
Date: Mon, 29 Apr 2019 14:11:09 +0100
Subject: [PATCH 1/3] Add breezy python3 plugin

---
 Makefile                  |  3 +++
 debian/changelog          |  6 ++++++
 debian/control            |  6 +++---
 etckeeper-brz/__init__.py | 34 ++++++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+), 3 deletions(-)
 create mode 100644 etckeeper-brz/__init__.py

Index: etckeeper-1.18.10/etckeeper-brz/__init__.py
===================================================================
--- /dev/null
+++ etckeeper-1.18.10/etckeeper-brz/__init__.py
@@ -0,0 +1,34 @@
+#
+# Breezy plugin that runs etckeeper pre-commit when necessary
+
+"""Runs etckeeper pre-commit when necessary."""
+
+from breezy.errors import BzrError
+import os
+
+def etckeeper_startcommit_hook(tree):
+    abspath = getattr(tree, "abspath", None)
+    if abspath is None or not os.path.exists(abspath(".etckeeper")):
+        # Only run the commit hook when this is an etckeeper branch
+        return
+    import subprocess
+    ret = subprocess.call(["etckeeper", "pre-commit", abspath(".")])
+    if ret != 0:
+        raise BzrError("etckeeper pre-commit failed")
+
+try:
+    from breezy.hooks import install_lazy_named_hook
+except ImportError:
+    from breezy.mutabletree import MutableTree
+    MutableTree.hooks.install_named_hook('start_commit',
+        etckeeper_startcommit_hook, 'etckeeper')
+else:
+    install_lazy_named_hook(
+        "breezy.mutabletree", "MutableTree.hooks",
+        'start_commit', etckeeper_startcommit_hook, 'etckeeper')
+
+if __name__ == "__main__":
+    from distutils.core import setup
+    setup(name="brz-etckeeper",
+          packages=["breezy.plugins.etckeeper"],
+          package_dir={"breezy.plugins.etckeeper":"etckeeper-brz"})