diff mbox series

[05/13] UBUNTU: [Packaging] generate: pull out configuration as a library for later use

Message ID 20220916114642.2953019-6-apw@canonical.com
State New
Headers show
Series [01/13] UBUNTU: [Packaging] generate-depends: relocate to debian/scripts | expand

Commit Message

Andy Whitcroft Sept. 16, 2022, 11:46 a.m. UTC
Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
 debian/scripts/config.py        | 30 ++++++++++++++++++++++++++++++
 debian/scripts/generate-control | 32 +++-----------------------------
 2 files changed, 33 insertions(+), 29 deletions(-)
 create mode 100644 debian/scripts/config.py
diff mbox series

Patch

diff --git a/debian/scripts/config.py b/debian/scripts/config.py
new file mode 100644
index 0000000..e964e64
--- /dev/null
+++ b/debian/scripts/config.py
@@ -0,0 +1,30 @@ 
+class Signing:
+
+    def __init__(self):
+        self._flavour_to_arch = {}
+        self._arch_flavour_data = {}
+
+    def add(self, arch, stype, binary, flavours):
+        for flavour in flavours:
+            self._flavour_to_arch.setdefault(flavour, []).append(arch)
+            self._arch_flavour_data[(arch, flavour)] = (stype, binary)
+
+    @property
+    def flavour_archs(self):
+        return sorted(self._flavour_to_arch.items())
+
+    @property
+    def arch_flavour_data(self):
+        return sorted(self._arch_flavour_data.items())
+
+
+    @classmethod
+    def load(cls, config):
+        signing = Signing()
+        with open(config) as cfd:
+            for line in cfd:
+                cmd, *args = line.strip().split()
+                if cmd == "sign":
+                    arch, stype, binary, *flavours = args
+                    signing.add(arch, stype, binary, flavours)
+        return signing
diff --git a/debian/scripts/generate-control b/debian/scripts/generate-control
index 033b6be..6fd68f6 100755
--- a/debian/scripts/generate-control
+++ b/debian/scripts/generate-control
@@ -1,40 +1,14 @@ 
 #!/usr/bin/python3 -B
 
-import json
+import os
 import sys
 from textwrap import dedent
 
-
-class Signing:
-
-    def __init__(self):
-        self._flavour_to_arch = {}
-        self._arch_flavour_data = {}
-
-    def add(self, arch, stype, binary, flavours):
-        for flavour in flavours:
-            self._flavour_to_arch.setdefault(flavour, []).append(arch)
-            self._arch_flavour_data[(arch, flavour)] = (stype, binary)
-
-    @property
-    def flavour_archs(self):
-        return sorted(self._flavour_to_arch.items())
-
-    @property
-    def arch_flavour_data(self):
-        return sorted(self._arch_flavour_data.items())
-
+from config import Signing
 
 (series, source_name, source_version, unsigned_name, unsigned_version, abi_version) = sys.argv[1:]
 
-signing = Signing()
-
-with open("debian/package.config") as cfd:
-    for line in cfd:
-        cmd, *args = line.strip().split()
-        if cmd == "sign":
-            arch, stype, binary, *flavours = args
-            signing.add(arch, stype, binary, flavours)
+signing = Signing.load("debian/package.config")
 
 with open("debian/control.stub") as tfd, open("debian/control", "w") as cfd:
     for line in tfd: