aboutsummaryrefslogtreecommitdiffstats
path: root/doc/devel/build-eplugin-manual.pl
blob: 6608c876e53e89b969657191f375f0fffdd070c2 (plain) (blame)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/usr/bin/perl

#
# API reference
#

%byref = ( 'e-popup.xml' =>
       { 'files' => [ 'e-popup.h', 'e-popup.c' ],
         'module' => 'e-util' },

       'e-menu.xml' =>
       { 'files' => [ 'e-menu.h', 'e-menu.c' ],
         'module' => 'e-util' },

       'e-event.xml' =>
       { 'files' => [ 'e-event.h', 'e-event.c' ],
         'module' => 'e-util' },

       'e-config.xml' =>
       { 'files' => [ 'e-config.h', 'e-config.c' ],
         'module' => 'e-util' },

       'e-plugin.xml' =>
       { 'files' => [ 'e-plugin.h', 'e-plugin.c' ],
         'module' => 'e-util' },

       'em-popup.xml' =>
       { 'files' => [ 'em-popup.h', 'em-popup.c' ],
         'module' => 'mail' },

       'em-format.xml' =>
       { 'files' => [ 'em-format-hook.h' , 'em-format-hook.c',
              'em-format.h', 'em-format.c',
              'em-format-html.h', 'em-format-html.c' ],
         'module' => 'mail' },
       );

foreach $out (keys %byref) {
    print "file $out\n";
    %data = %{$byref{$out}};
    @files = @{$data{'files'}};
    $module = $data{'module'};
    $files = "";
    foreach $file (@files) {
    $files .= " ../../".$module."/".$file;
    }
    system("kernel-doc -docbook $files > $out");
}

#
# Event reference
#

%events = ( 'em-events.xml' =>
        { 'files' => [ 'em-folder-view.c', 'em-composer-utils.c', 'mail-folder-cache.c' ],
          'module' => 'mail' },
        );

foreach $out (keys %events) {
    print "generating events doc $out\n";
    %data = %{$events{$out}};
    @files = @{$data{'files'}};
    $module = $data{'module'};
    open OUT,">$out";
    foreach $file (@files) {
    open IN,"<../../$module/$file";
    while (<IN>) {
        if (m/\@Event: (.*)/) {
        $title = $1;
        $name = $1;
        $target = "";
        while (<IN>) {
            if (m/\@Title: (.*)/) {
            $title = $1;
            } elsif (m/\@Target: (.*)/) {
            $target = $1;
            } elsif (m/\* (.*)/) {
            $desc.= $1."\n";
            }
            last if (m/\*\//);
        }
        if ($target eq "") {
            print "Warning: No target defined for event $name ($title)\n";
        }
        print OUT <<END;
    <sect2>
      <title>$title</title>
      <informaltable>
        <tgroup cols="2">
          <colspec colnum="1" colname="field" colwidth="1*"/>
          <colspec colnum="2" colname="value" colwidth="4*"/>
          <tbody valign="top">
        <row>
          <entry>Name</entry>
          <entry><constant>$name</constant></entry>
        </row>
        <row>
          <entry>Target</entry>
          <entry>
            <link
              linkend="$module-hooks-event-$target">$target</link>
          </entry>
        </row>
        <row>
          <entry>Description</entry>
          <entry>
          <simpara>
          $desc
          </simpara>
          </entry>
        </row>
          </tbody>
        </tgroup>
      </informaltable>
    </sect2>
END
        }
    }
    close IN;
    }
    close OUT;

}