diff options
Diffstat (limited to 'tools/xml_helper.py')
-rw-r--r-- | tools/xml_helper.py | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/tools/xml_helper.py b/tools/xml_helper.py index e87126f2f7..862930e59c 100644 --- a/tools/xml_helper.py +++ b/tools/xml_helper.py @@ -18,17 +18,38 @@ # along with systemd; If not, see <http://www.gnu.org/licenses/>. from lxml import etree as tree +import os.path + +shared = { 'custom-entities.ent', + 'less-variables.xml', + 'standard-conf.xml', + 'standard-options.xml', + 'user-system-options.xml' } class CustomResolver(tree.Resolver): def resolve(self, url, id, context): - if 'custom-entities.ent' in url: - return self.resolve_filename('man/custom-entities.ent', context) + basename = os.path.basename(url) + if not basename in shared: + return None + + topsrcdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + makename = os.path.join('$(topsrcdir)', 'man', basename) + lxmlname = os.path.join(topsrcdir, 'man', basename) + if basename == 'custom-entities.ent': + makename = os.path.join('$(topoutdir)', 'man', basename) + lxmlname += '.in' + + _deps.add(makename) + return self.resolve_filename(lxmlname, context) _parser = tree.XMLParser() _parser.resolvers.add(CustomResolver()) +_deps = set() def xml_parse(page): + _deps.clear() doc = tree.parse(page, _parser) doc.xinclude() - return doc + return doc, _deps def xml_print(xml): return tree.tostring(xml, pretty_print=True, encoding='utf-8') |