[elbe-devel] [PATCH v2 2/4] cdroms: Add class SrcMananager

Olivier Dion dion at linutronix.de
Mon May 4 19:42:01 CEST 2020


The source manager manage a dictionary of packages with their versions and
components.

Signed-off-by: Olivier Dion <dion at linutronix.de>
---
 elbepack/cdroms.py | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/elbepack/cdroms.py b/elbepack/cdroms.py
index 669c3c78..ed8730fc 100644
--- a/elbepack/cdroms.py
+++ b/elbepack/cdroms.py
@@ -25,6 +25,31 @@ from elbepack.isooptions import get_iso_options
 
 CDROM_SIZE = 640 * 1000 * 1000
 
+class SrcManager(object):
+
+    def __init__(self):
+        self.pkgs = {}
+        self.forbid = set()
+
+    def __iter__(self):
+        for pkg in self.pkgs:
+            for version in self.pkgs[pkg]:
+                for component in self.pkgs[pkg][version]:
+                    yield (pkg, version, component)
+
+    def add_pkg(self, name, version, component):
+        if name in self.forbid:
+            return
+        if name in self.pkgs:
+            if version not in self.pkgs[name]:
+                self.pkgs[name][version] = [component]
+            else:
+                self.pkgs[name][version].append(component)
+        else:
+            self.pkgs[name] = {version: [component]}
+
+    def forbid_pkg(self, name):
+        self.forbid.add(name)
 
 def mk_source_cdrom(rfs, arch, codename, init_codename, target,
                     cdrom_size=CDROM_SIZE, xml=None):
-- 
2.26.2




More information about the elbe-devel mailing list