forked from openvswitch/ovs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dist-docs: New utility to generate a documentation bundle for the web…
…site. This utility isn't going to be as portable as most of the Open vSwitch utilities, unfortunately. I'm happy to take improvements to make it able to work with, e.g., the "man" program from BSD. (I haven't tested with that program, but I suspect that it is somewhat different from the GNU version.) The output of this program can already be viewed at: http://openvswitch.org/support/dist-docs/ Signed-off-by: Ben Pfaff <[email protected]> Acked-by: Thomas Graf <[email protected]>
- Loading branch information
Showing
7 changed files
with
174 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
#! /bin/sh | ||
|
||
set -e | ||
|
||
# Check command line. | ||
if test ! -d "$1" || test $# -lt 2; then | ||
cat <<EOF | ||
$0: HTML documentation generator for Open vSwitch | ||
usage: $0 srcdir docfile... | ||
The VERSION environment variable should be set to the Open vSwitch version. | ||
Must be invoked from an Open vSwitch build directory. | ||
Most conveniently invoked via "make dist-docs". | ||
EOF | ||
exit 1 | ||
fi | ||
|
||
# Parse command line. | ||
srcdir=$1 | ||
shift | ||
|
||
# Check for programs we'll need. | ||
search_path () { | ||
save_IFS=$IFS | ||
IFS=: | ||
for dir in $PATH; do | ||
IFS=$save_IFS | ||
if test -x "$dir/$1"; then | ||
return 0 | ||
fi | ||
done | ||
IFS=$save_IFS | ||
echo >&2 "$0: $1 not found in \$PATH, please install and try again" | ||
exit 1 | ||
} | ||
search_path man | ||
search_path markdown | ||
search_path ps2pdf | ||
|
||
# Create dist-docs directory. | ||
distdir=dist-docs | ||
abs_distdir=`pwd`/dist-docs | ||
rm -rf $distdir | ||
mkdir $distdir | ||
|
||
# Install manpages. | ||
make install-man mandir="$abs_distdir"/man | ||
(cd $distdir && mv `find man -type f` . && rm -rf man) | ||
manpages=`cd $distdir && echo *` | ||
|
||
# Start writing index.html. | ||
exec 3>$distdir/index.html | ||
cat >&3 <<EOF | ||
<html><head> | ||
<meta charset="UTF-8"></head> | ||
<link rel="stylesheet" type="text/css" href="style.css"> | ||
<title>Open vSwitch $VERSION Documentation</title> | ||
</head><body> | ||
<h1>Open vSwitch $VERSION Documentation</h1> | ||
<h2>Documents</h2> | ||
<table> | ||
EOF | ||
|
||
# Add top-level documentation to index.html, giving it .txt extensions so | ||
# that the webserver doesn't serve it as Markdown and make your web browser | ||
# try to invoke some kind of external helper you don't have installed. | ||
# | ||
# Also translate documentation to HTML. | ||
for file | ||
do | ||
title=`head -1 "$srcdir/$file"` | ||
dir=$distdir/`dirname $file`; test -d "$dir" || mkdir "$dir" | ||
cp "$srcdir/$file" "$distdir/$file.txt" | ||
(cat <<EOF | ||
<html><head> | ||
<meta charset="UTF-8"></head> | ||
<link rel="stylesheet" type="text/css" href="style.css"> | ||
<title>$file (Open vSwitch $VERSION)</title> | ||
</head><body> | ||
EOF | ||
markdown "$distdir/$file.txt" | ||
echo "</body></html>") > "$distdir/$file.html" | ||
cat <<EOF | ||
<tr> | ||
<td>$file</td> | ||
<td>$title</td> | ||
<td><a href="$file.html">HTML</a>, <a href="$file.txt">plain text</a></td> | ||
</tr> | ||
EOF | ||
done >&3 | ||
|
||
# Add header for manpages to index.html. | ||
cat >&3 <<EOF | ||
</table> | ||
<h2>Manpages</h2> | ||
<table> | ||
EOF | ||
|
||
# Add manpages to index.html, translating them into PDF, HTML, and plain text. | ||
# The HTML is just slightly marked up from the plain text version; although | ||
# groff supports better HTML output, on my system some of the OVS manpages | ||
# cause the groff HTML output engine to segfault (!). | ||
(cd $distdir | ||
for manpage in $manpages; do | ||
man -l -Tps $manpage | ps2pdf - > $manpage.pdf | ||
man -l -Tutf8 $manpage | sed 's/.//g' > $manpage.txt | ||
(echo '<html><head><meta charset="UTF-8"></head><body><pre>' | ||
man -l -Tutf8 $manpage | sed ' | ||
s/&/&/g | ||
s/</</g | ||
s/>/>/g | ||
s,\(.\)\1,<b>\1</b>,g | ||
s,_\(.\),<u>\1</u>,g' | ||
echo '</pre></body></html>' | ||
) > $manpage.html | ||
|
||
name=`echo $manpage | sed 's/\.\([0-9]\)$/(\1)/'` | ||
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>" | ||
done | ||
) >&3 | ||
cat >&3 <<EOF | ||
</table> | ||
</body></html> | ||
EOF | ||
|
||
# Create CSS style file. | ||
cat >$distdir/style.css <<'EOF' | ||
div { vertical-align:top; } | ||
p { | ||
vertical-align:baseline; | ||
} | ||
a { | ||
text-decoration: none; | ||
font-weight: 700; | ||
} | ||
a:hover { | ||
color:#444; | ||
} | ||
a:visited { | ||
color:#447099; | ||
} | ||
a:link { | ||
color:#447099; | ||
} | ||
body { | ||
font-family: Arial,Helvetica,sans-serif; | ||
font-size: 14px; | ||
line-height: 1.5em; | ||
color: #444; | ||
background-color:#f5f5f5; | ||
} | ||
EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
EXTRA_DIST += \ | ||
third-party/README.md \ | ||
third-party/ofp-tcpdump.patch | ||
docs += third-party/README.md | ||
EXTRA_DIST += third-party/ofp-tcpdump.patch |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters