summaryrefslogtreecommitdiffstats
path: root/test cases/frameworks/10 gtk-doc/include/generate-enums-docbook.py
blob: 41c6121b2222e2ef36853fb95962d06a1656ac79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env python3

import sys

DOC_HEADER = '''<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<refentry id="{0}">
  <refmeta>
    <refentrytitle role="top_of_page" id="{0}.top_of_page">{0}</refentrytitle>
    <refmiscinfo>{0}</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>{0}</refname>
    <refpurpose></refpurpose>
  </refnamediv>

  <refsect2 id="{1}" role="enum">
    <title>enum {1}</title>
    <indexterm zone="{1}">
      <primary>{1}</primary>
    </indexterm>
    <para><link linkend="{1}">{1}</link></para>
    <refsect3 role="enum_members">
      <title>Values</title>
      <informaltable role="enum_members_table" pgwide="1" frame="none">
        <tgroup cols="4">
          <colspec colname="enum_members_name" colwidth="300px" />
          <colspec colname="enum_members_value" colwidth="100px"/>
          <colspec colname="enum_members_description" />
          <tbody>
'''

DOC_ENUM = '''            <row role="constant">
              <entry role="enum_member_name"><para>{0}</para><para></para></entry>
              <entry role="enum_member_value"><para>= <literal>{1}</literal></para><para></para></entry>
              <entry role="enum_member_description"></entry>
            </row>'''

DOC_FOOTER = '''
          </tbody>
        </tgroup>
      </informaltable>
    </refsect3>
  </refsect2>
</refentry>
'''

if __name__ == '__main__':
    if len(sys.argv) >= 4:
        with open(sys.argv[1], 'w') as doc_out:
            enum_name = sys.argv[2]
            enum_type = sys.argv[3]

            doc_out.write(DOC_HEADER.format(enum_name, enum_type))
            for i, enum in enumerate(sys.argv[4:]):
                doc_out.write(DOC_ENUM.format(enum, i))
            doc_out.write(DOC_FOOTER)
    else:
        print('Use: ' + sys.argv[0] + ' out name type [enums]')

    sys.exit(0)