From 87fa34f9c547e4b6649ab90a1f3838499cbc44a1 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Wed, 18 Dec 2019 04:25:52 +1100 Subject: minimaws: load more stuff, link more stuff --- scripts/minimaws/lib/lxparse.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'scripts/minimaws/lib/lxparse.py') diff --git a/scripts/minimaws/lib/lxparse.py b/scripts/minimaws/lib/lxparse.py index 62ff18e8d5a..46737ef438a 100644 --- a/scripts/minimaws/lib/lxparse.py +++ b/scripts/minimaws/lib/lxparse.py @@ -211,6 +211,8 @@ class MachineHandler(ElementHandler): status = 0 if 'status' not in attrs else 2 if attrs['status'] == 'unemulated' else 1 overall = status if 'overall' not in attrs else 2 if attrs['overall'] == 'unemulated' else 1 self.dbcurs.add_feature(self.id, attrs['type'], status, overall) + elif name == 'softwarelist': + self.dbcurs.add_machinesoftwarelist(self.id, attrs['name'], attrs['tag'], attrs['status']) elif name == 'rom': crc = attrs.get('crc') sha1 = attrs.get('sha1') @@ -385,6 +387,8 @@ class SoftwareHandler(ElementHandler): elif name == 'publisher': self.publisher = handler.text self.id = self.dbcurs.add_software(self.softwarelist, self.shortname, self.supported, self.description, self.year, self.publisher) + if self.cloneof is not None: + self.dbcurs.add_softwarecloneof(self.id, self.cloneof) class SoftwareListHandler(ElementHandler): @@ -439,6 +443,12 @@ def load_info(options): dbconn.prepare_for_load() parser = xml.sax.make_parser() + parser.setContentHandler(SoftwareListHandler(dbconn)) + for path in options.softwarepath: + files = [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.xml')] + for filename in files: + parser.parse(filename) + parser.setContentHandler(ListXmlHandler(dbconn)) if options.executable is not None: task = subprocess.Popen([options.executable, '-listxml'], stdout=subprocess.PIPE) @@ -446,11 +456,4 @@ def load_info(options): else: parser.parse(options.file) - if options.softwarepath: - parser.setContentHandler(SoftwareListHandler(dbconn)) - for path in options.softwarepath: - files = [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.xml')] - for filename in files: - parser.parse(filename) - dbconn.finalise_load() -- cgit v1.2.3-70-g09d2