Updated Norwegian bokmål translation
[empathy-mirror.git] / tools / glib-errors-enum-header-gen.py
blob64939b4142b88051b223c3f8cd5897d7207587a0
1 #!/usr/bin/python
3 import sys
4 import xml.dom.minidom
6 from libglibcodegen import NS_TP, camelcase_to_upper, get_docstring, \
7 get_descendant_text
9 class Generator(object):
10 def __init__(self, dom):
11 self.dom = dom
12 self.errors = self.dom.getElementsByTagNameNS(NS_TP, 'errors')[0]
14 def do_header(self):
15 print '/* Generated from the Telepathy spec\n'
16 copyrights = self.errors.getElementsByTagNameNS(NS_TP, 'copyright')
17 for copyright in copyrights:
18 print get_descendant_text(copyright)
19 license = self.errors.getElementsByTagNameNS(NS_TP, 'license')[0]
20 print '\n' + get_descendant_text(license) + '\n*/'
22 def do_gtkdoc(self):
23 for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'):
24 ns = error.parentNode.getAttribute('namespace')
25 nick = error.getAttribute('name').replace(' ', '')
26 enum = 'TP_ERROR_' + camelcase_to_upper(nick.replace('.', ''))
27 print ' * @' + enum + ': ' + ns + '.' + nick + ':'
28 print ' * ' + get_docstring(error) + ' '
30 def do_enumnames(self):
31 for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'):
32 nick = error.getAttribute('name').replace(' ', '')
33 enum = 'TP_ERROR_' + camelcase_to_upper(nick.replace('.', ''))
34 print ' ' + enum + ','
36 def do_get_type(self):
37 print """
38 #include <glib-object.h>
40 G_BEGIN_DECLS
42 GType tp_error_get_type (void);
44 /**
45 * TP_TYPE_ERROR:
47 * The GType of the Telepathy error enumeration.
49 #define TP_TYPE_ERROR (tp_error_get_type())
50 """
52 def do_enum(self):
53 print """\
54 /**
55 * TpError:"""
56 self.do_gtkdoc()
57 print """\
59 * Enumerated type representing the Telepathy D-Bus errors.
61 typedef enum {"""
62 self.do_enumnames()
63 print """\
64 } TpError;
66 G_END_DECLS"""
68 def __call__(self):
69 self.do_header()
70 self.do_get_type()
71 self.do_enum()
73 if __name__ == '__main__':
74 argv = sys.argv[1:]
75 Generator(xml.dom.minidom.parse(argv[0]))()