diff options
author | 2019-12-18 04:25:52 +1100 | |
---|---|---|
committer | 2019-12-18 04:25:52 +1100 | |
commit | 87fa34f9c547e4b6649ab90a1f3838499cbc44a1 (patch) | |
tree | 8f1f6f71011303aa14979959659204075107b95b /scripts/minimaws/lib/lxparse.py | |
parent | 3b5f232c0e5777bfce2619b48f8f82ebf355635e (diff) |
minimaws: load more stuff, link more stuff
Diffstat (limited to 'scripts/minimaws/lib/lxparse.py')
-rw-r--r-- | scripts/minimaws/lib/lxparse.py | 17 |
1 files changed, 10 insertions, 7 deletions
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() |