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

Andy Whitcroft apw at canonical.com
Fri Sep 16 11:46:34 UTC 2022


Signed-off-by: Andy Whitcroft <apw at 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 --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:
-- 
2.36.1




More information about the kernel-team mailing list