]> git.proxmox.com Git - mirror_ovs.git/blame - build-aux/dist-docs
config: Define OVS_CT_EVENT_* mask macros.
[mirror_ovs.git] / build-aux / dist-docs
CommitLineData
4441a01c
BP
1#! /bin/sh
2
3set -e
4
5# Check command line.
32dddce8 6if test ! -d "$1" || test $# != 1; then
4441a01c
BP
7 cat <<EOF
8$0: HTML documentation generator for Open vSwitch
32dddce8 9usage: $0 srcdir
4441a01c
BP
10
11The VERSION environment variable should be set to the Open vSwitch version.
12Must be invoked from an Open vSwitch build directory.
13Most conveniently invoked via "make dist-docs".
14EOF
15 exit 1
16fi
17
18# Parse command line.
19srcdir=$1
20shift
21
22# Check for programs we'll need.
23search_path () {
24 save_IFS=$IFS
25 IFS=:
26 for dir in $PATH; do
a36bb334
RB
27 IFS=$save_IFS
28 if test -x "$dir/$1"; then
29 return 0
30 fi
4441a01c
BP
31 done
32 IFS=$save_IFS
33 echo >&2 "$0: $1 not found in \$PATH, please install and try again"
34 exit 1
35}
36search_path man
4441a01c
BP
37search_path ps2pdf
38
39# Create dist-docs directory.
40distdir=dist-docs
41abs_distdir=`pwd`/dist-docs
42rm -rf $distdir
43mkdir $distdir
44
45# Install manpages.
6b304335 46${MAKE-make} install-man mandir="$abs_distdir"/man
4441a01c
BP
47(cd $distdir && mv `find man -type f` . && rm -rf man)
48manpages=`cd $distdir && echo *`
49
50# Start writing index.html.
51exec 3>$distdir/index.html
52cat >&3 <<EOF
53<html><head>
54 <meta charset="UTF-8"></head>
55 <link rel="stylesheet" type="text/css" href="style.css">
56 <title>Open vSwitch $VERSION Documentation</title>
57</head><body>
c431227e 58<h1>Open vSwitch $VERSION Manpages</h1>
4441a01c
BP
59<table>
60EOF
61
62# Add manpages to index.html, translating them into PDF, HTML, and plain text.
63# The HTML is just slightly marked up from the plain text version; although
64# groff supports better HTML output, on my system some of the OVS manpages
65# cause the groff HTML output engine to segfault (!).
66(cd $distdir
67 for manpage in $manpages; do
68 man -l -Tps $manpage | ps2pdf - > $manpage.pdf
0e7850eb 69 GROFF_NO_SGR=1 man -l -Tutf8 $manpage | sed 's/.\b//g' > $manpage.txt
4441a01c 70 (echo '<html><head><meta charset="UTF-8"></head><body><pre>'
0e7850eb 71 GROFF_NO_SGR=1 man -l -Tutf8 $manpage | sed '
4441a01c
BP
72s/&/&amp;/g
73s/</&lt;/g
74s/>/&gt;/g
75s,\(.\)\b\1,<b>\1</b>,g
76s,_\b\(.\),<u>\1</u>,g'
77 echo '</pre></body></html>'
78 ) > $manpage.html
79
80 name=`echo $manpage | sed 's/\.\([0-9]\)$/(\1)/'`
81 echo " <tr><td>$name</td><td><a href=\"$manpage.pdf\">PDF</a>, <a href=\"$manpage.html\">HTML</a>, <a href=\"$manpage.txt\">plain text</a></td></tr>"
82 done
83) >&3
84cat >&3 <<EOF
85</table>
86</body></html>
87EOF
88
89# Create CSS style file.
90cat >$distdir/style.css <<'EOF'
91div { vertical-align:top; }
92p {
93 vertical-align:baseline;
94}
95a {
96 text-decoration: none;
97 font-weight: 700;
98}
99a:hover {
100 color:#444;
101}
102a:visited {
103 color:#447099;
104}
105a:link {
106 color:#447099;
107}
108
109body {
110 font-family: Arial,Helvetica,sans-serif;
111 font-size: 14px;
112 line-height: 1.5em;
113 color: #444;
114 background-color:#f5f5f5;
115}
116EOF