]> git.proxmox.com Git - mirror_ovs.git/blame - build-aux/dist-docs
doc: Use higher resolution logo
[mirror_ovs.git] / build-aux / dist-docs
CommitLineData
4441a01c
BP
1#! /bin/sh
2
3set -e
4
5# Check command line.
6if test ! -d "$1" || test $# -lt 2; then
7 cat <<EOF
8$0: HTML documentation generator for Open vSwitch
9usage: $0 srcdir docfile...
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