diff options
author | Will Thompson <will.thompson@collabora.co.uk> | 2009-05-26 15:38:59 +0100 |
---|---|---|
committer | Will Thompson <will.thompson@collabora.co.uk> | 2009-05-26 15:38:59 +0100 |
commit | 5ef917be668821c1a166f43ae24ad3eb37d25bf3 (patch) | |
tree | f687b2fca21f39219660315342d9fa795b6520e8 /tools/glib-errors-str-gen.py | |
parent | 6f6e11e59cb341d487247e76382c7b6770448fea (diff) | |
download | telepathy-glib-5ef917be668821c1a166f43ae24ad3eb37d25bf3.tar.gz |
Generate error-str.c as well as error-str.h
This adapts glib-errors-str-gen.py to follow a similar pattern to that
used in glib-ginterface-gen.py: it accepts a basename on the command
line, and writes to <basename>.[ch].
Diffstat (limited to 'tools/glib-errors-str-gen.py')
-rw-r--r-- | tools/glib-errors-str-gen.py | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/tools/glib-errors-str-gen.py b/tools/glib-errors-str-gen.py index bf0beb4e7..ab7e87388 100644 --- a/tools/glib-errors-str-gen.py +++ b/tools/glib-errors-str-gen.py @@ -6,28 +6,44 @@ import xml.dom.minidom from libglibcodegen import NS_TP, camelcase_to_upper, get_docstring, xml_escape class Generator(object): - def __init__(self, dom): + def __init__(self, dom, basename): self.dom = dom self.errors = self.dom.getElementsByTagNameNS(NS_TP, 'errors')[0] + self.basename = basename + + self.__header = [] + self.__body = [] + + def h(self, s): + self.__header.append(s) + + def b(self, s): + self.__body.append(s) def __call__(self): + errors = self.errors.getElementsByTagNameNS(NS_TP, 'error') - for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + for error in errors: ns = error.parentNode.getAttribute('namespace') nick = error.getAttribute('name').replace(' ', '') name = 'TP_ERROR_STR_' + camelcase_to_upper(nick.replace('.', '')) error_name = '%s.%s' % (ns, nick) - print '' - print '/**' - print ' * %s:' % name - print ' *' - print ' * The D-Bus error name %s' % error_name - print ' *' - print ' * %s' % xml_escape(get_docstring(error)) - print ' */' - print '#define %s "%s"' % (name, error_name) + self.h('') + self.h('/**') + self.h(' * %s:' % name) + self.h(' *') + self.h(' * The D-Bus error name %s' % error_name) + self.h(' *') + self.h(' * %s' % xml_escape(get_docstring(error))) + self.h(' */') + self.h('#define %s "%s"' % (name, error_name)) + + open(self.basename + '.h', 'w').write('\n'.join(self.__header)) + open(self.basename + '.c', 'w').write('\n'.join(self.__body)) if __name__ == '__main__': argv = sys.argv[1:] - Generator(xml.dom.minidom.parse(argv[0]))() + basename = argv[0] + + Generator(xml.dom.minidom.parse(argv[1]), basename)() |