[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