File: 0001-Add-breezy-python3-plugin.patch

package info (click to toggle)
etckeeper 1.18.23-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,640 kB
  • sloc: sh: 1,267; python: 111; makefile: 109; ansic: 81
file content (78 lines) | stat: -rw-r--r-- 3,134 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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: b/Makefile
===================================================================
--- a/Makefile	2021-02-04 16:57:08.225089037 -0500
+++ b/Makefile	2021-02-04 16:57:08.221088974 -0500
@@ -17,11 +17,13 @@ INSTALL=install
 INSTALL_EXE=${INSTALL}
 INSTALL_DATA=${INSTALL} -m 0644
 PYTHON=python
+PYTHON3=python3
 FAKEROOT := $(shell command -v fakeroot 2> /dev/null)
 TESTDIR := $(shell mktemp -u -d)
 
 build: etckeeper.spec etckeeper.version
 	-$(PYTHON) ./etckeeper-bzr/__init__.py build || echo "** bzr support not built"
+	-$(PYTHON3) ./etckeeper-brz/__init__.py build || echo "** brz support not built"
 	-$(PYTHON) ./etckeeper-dnf/etckeeper.py build || echo "** DNF support not built"
 
 install: etckeeper.version
@@ -69,6 +71,7 @@ ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),zyppe
 	$(INSTALL) zypper-etckeeper.py $(DESTDIR)$(prefix)/lib/zypp/plugins/commit/zypper-etckeeper.py
 endif
 	-$(PYTHON) ./etckeeper-bzr/__init__.py install --root=$(DESTDIR) ${PYTHON_INSTALL_OPTS} || echo "** bzr support not installed"
+	-$(PYTHON3) ./etckeeper-brz/__init__.py install --root=$(DESTDIR) ${PYTHON_INSTALL_OPTS} || echo "** brz support not installed"
 	echo "** installation successful"
 
 clean: etckeeper.spec etckeeper.version
Index: b/etckeeper-brz/__init__.py
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ b/etckeeper-brz/__init__.py	2021-02-04 16:57:08.221088974 -0500
@@ -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"})