Factor out common parts of manpages.
authorBen Pfaff <blp@nicira.com>
Sat, 27 Dec 2008 23:36:49 +0000 (15:36 -0800)
committerBen Pfaff <blp@nicira.com>
Sun, 28 Dec 2008 06:46:26 +0000 (22:46 -0800)
There was a lot of duplication in the sources for the
manpages, because many of the programs have common options.
This factors out some of the duplication into include
files, using the man ".so" directive.  It also uses the
".ds" directive to define strings that should be
customized for each program's manpage.

14 files changed:
Makefile.am
controller/controller.8.in
lib/common.man [new file with mode: 0644]
lib/daemon.man [new file with mode: 0644]
lib/vlog.man
secchan/secchan.8.in
soexpand.pl [new file with mode: 0755]
subst [deleted file]
switch/switch.8.in
udatapath/udatapath.8.in
utilities/dpctl.8.in
utilities/ofp-discover.8.in
utilities/ofp-kill.8.in
utilities/vlogconf.8.in

index fd11c40ae42a91df349c336ab79292c1f0d676b1..2541437ec703237a5ced1581dae32a97eb8b05df 100644 (file)
@@ -45,20 +45,18 @@ noinst_LIBRARIES =
 noinst_PROGRAMS =
 noinst_SCRIPTS =
 
-EXTRA_DIST += README.hwtables subst
+EXTRA_DIST += README.hwtables soexpand.pl
 
-do_subst = ($(srcdir)/subst VLOG_OPTIONS $(srcdir)/lib/vlog.man | \
-           sed -e 's,[@]LOGDIR[@],$(LOGDIR),g' \
-               -e 's,[@]PKIDIR[@],$(PKIDIR),g' \
-                -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
-                -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
-                -e 's,[@]PERL[@],$(PERL),g')
-ro_script = sed "`printf '1a\\' && printf '\\n\# -*- buffer-read-only: t -*-'`"
 ro_c = echo '/* -*- mode: c; buffer-read-only: t -*- */'
 
 SUFFIXES = .in
 .in:
-       $(do_subst) < $< > $@
+       $(PERL) $(srcdir)/soexpand.pl -I$(srcdir) < $< | \
+           sed -e 's,[@]LOGDIR[@],$(LOGDIR),g' \
+               -e 's,[@]PKIDIR[@],$(PKIDIR),g' \
+                -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
+                -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
+                -e 's,[@]PERL[@],$(PERL),g' > $@
 
 include lib/automake.mk
 include secchan/automake.mk
index b608c93949e72a724d0704c9131c465b091fbfbb..45b8ce17130ef694aee5818795610b7a9e72ff04 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN controller
+
 .TH controller 8 "May 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -124,37 +126,9 @@ through the controller and every packet is flooded.
 This option is most useful for debugging.  It reduces switching
 performance, so it should not be used in production.
 
-.TP
-\fB-P\fR[\fIpidfile\fR], \fB--pidfile\fR[\fB=\fIpidfile\fR]
-Causes a file (by default, \fBcontroller.pid\fR) to be created indicating
-the PID of the running process.  If \fIpidfile\fR is not specified, or
-if it does not begin with \fB/\fR, then it is created in
-\fB@RUNDIR@\fR.
-
-.TP
-\fB-f\fR, \fB--force\fR
-By default, when \fB-P\fR or \fB--pidfile\fR is specified and the
-specified pidfile already exists and is locked by a running process,
-\fBcontroller\fR refuses to start.  Specify \fB-f\fR or \fB--force\fR
-to cause it to instead overwrite the pidfile.
-
-When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
-effect.
-
-.TP
-\fB-D\fR, \fB--detach\fR
-Causes \fBcontroller\fR to detach itself from the foreground session and
-run as a background process.
-
-.TP
-.BR \-h ", " \-\^\-help
-Prints a brief help message to the console.
-
-@VLOG_OPTIONS@
-
-.TP
-.BR \-V ", " \-\^\-version
-Prints version information to the console.
+.so lib/daemon.man
+.so lib/vlog.man
+.so lib/common.man
 
 .SH EXAMPLES
 
diff --git a/lib/common.man b/lib/common.man
new file mode 100644 (file)
index 0000000..1f12bb7
--- /dev/null
@@ -0,0 +1,7 @@
+.TP
+.BR \-h ", " \-\^\-help
+Prints a brief help message to the console.
+
+.TP
+.BR \-V ", " \-\^\-version
+Prints version information to the console.
diff --git a/lib/daemon.man b/lib/daemon.man
new file mode 100644 (file)
index 0000000..4ab6568
--- /dev/null
@@ -0,0 +1,21 @@
+.TP
+\fB-P\fR[\fIpidfile\fR], \fB--pidfile\fR[\fB=\fIpidfile\fR]
+Causes a file (by default, \fB\*(PN.pid\fR) to be created indicating
+the PID of the running process.  If \fIpidfile\fR is not specified, or
+if it does not begin with \fB/\fR, then it is created in
+\fB@RUNDIR@\fR.
+
+.TP
+\fB-f\fR, \fB--force\fR
+By default, when \fB-P\fR or \fB--pidfile\fR is specified and the
+specified pidfile already exists and is locked by a running process,
+\fB\*(PN\fR refuses to start.  Specify \fB-f\fR or \fB--force\fR
+to cause it to instead overwrite the pidfile.
+
+When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
+effect.
+
+.TP
+\fB-D\fR, \fB--detach\fR
+Causes \fB\*(PN\fR to detach itself from the foreground session and
+run as a background process.
index 6bc7d29889aa6ade8f4a3520d5d7911cb1bd1712..f6d2acc6a929418a3751c69d9b0468f9e5016076 100644 (file)
@@ -40,6 +40,4 @@ Sets the log pattern for \fIfacility\fR to \fIpattern\fR.  Refer to
 \fB--log-file\fR[\fB=\fIfile\fR]
 Enables logging to a file.  If \fIfile\fR is specified, then it is
 used as the exact name for the log file.  The default log file name
-used if \fIfile\fR is omitted is @LOGDIR@/\fIprogram\fR.log, where
-\fIprogram\fR is the name of the program as invoked
-(e.g. \fBsecchan\fR).
+used if \fIfile\fR is omitted is \fB@LOGDIR@/\*(PN.log\fR.
index 3c5cc62e94f3d8927257dd9c883529f3a3e08f49..9006f9800e94e0ca8de90e9bc42500b69912fbc6 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN secchan
+
 .TH secchan 8 "October 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -424,37 +426,9 @@ require the controller to send the CA certificate, but
 \fBcontroller\fR(8) can be configured to do so with the
 \fB--peer-ca-cert\fR option.
 
-.TP
-\fB-P\fR[\fIpidfile\fR], \fB--pidfile\fR[\fB=\fIpidfile\fR]
-Causes a file (by default, \fBsecchan.pid\fR) to be created indicating
-the PID of the running process.  If \fIpidfile\fR is not specified, or
-if it does not begin with \fB/\fR, then it is created in
-\fB@RUNDIR@\fR.
-
-.TP
-\fB-f\fR, \fB--force\fR
-By default, when \fB-P\fR or \fB--pidfile\fR is specified and the
-specified pidfile already exists and is locked by a running process,
-\fBsecchan\fR refuses to start.  Specify \fB-f\fR or \fB--force\fR
-to cause it to instead overwrite the pidfile.
-
-When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
-effect.
-
-.TP
-\fB-D\fR, \fB--detach\fR
-Causes \fBsecchan\fR to detach itself from the foreground session and
-run as a background process.
-
-.TP
-.BR \-h ", " \-\^\-help
-Prints a brief help message to the console.
-
-@VLOG_OPTIONS@
-
-.TP
-.BR \-V ", " \-\^\-version
-Prints version information to the console.
+.so lib/daemon.man
+.so lib/vlog.man
+.so lib/common.man
 
 .SH "SEE ALSO"
 
diff --git a/soexpand.pl b/soexpand.pl
new file mode 100755 (executable)
index 0000000..4e13005
--- /dev/null
@@ -0,0 +1,26 @@
+use strict;
+use warnings;
+use Getopt::Long;
+
+my ($exit_code) = 0;
+my (@include_dirs);
+Getopt::Long::Configure ("bundling");
+GetOptions("I|include=s" => \@include_dirs) or exit(1);
+@include_dirs = ('.') if !@include_dirs;
+OUTER: while (<STDIN>) {
+    if (my ($name) = /^\.so (\S+)$/) {
+       foreach my $dir (@include_dirs, '.') {
+           if (open(INNER, "$dir/$name")) {
+               while (<INNER>) {
+                   print $_;
+               }
+               close(INNER);
+               next OUTER;
+           }
+       }
+       print STDERR "$name not found in: ", join(' ', @include_dirs), "\n";
+       $exit_code = 1;
+    }
+    print $_;
+}
+exit $exit_code;
diff --git a/subst b/subst
deleted file mode 100755 (executable)
index c2e71df..0000000
--- a/subst
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /bin/sh
-exec sed -e "/^@$1@\$/{
-r $2
-d
-}"
index c6aa6060deb8f3a9947434746389f916637517b1..17db7b1cc8793e9c6b889c13a3cd75bf4471965e 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN switch
+
 .TH secchan 8 "May 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -110,7 +112,7 @@ run as a background process.
 .BR \-h ", " \-\^\-help
 Prints a brief help message to the console.
 
-@VLOG_OPTIONS@
+.so lib/vlog.man
 
 .TP
 .BR \-V ", " \-\^\-version
index ad992c5d6bce7b7918be2efb5f27808d220ce69d..838a44dbf7a2e1c83ac0d80a08c16c1b066b917e 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN udatapath
+
 .TH udatapath 8 "May 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -118,54 +120,9 @@ private key to identify a trustworthy datapath.
 Specifies a PEM file containing the CA certificate used to verify that
 the datapath is connected to a trustworthy secure channel.
 
-.TP
-\fB-P\fR[\fIpidfile\fR], \fB--pidfile\fR[\fB=\fIpidfile\fR]
-Causes a file (by default, \fBudatapath.pid\fR) to be created indicating
-the PID of the running process.  If \fIpidfile\fR is not specified, or
-if it does not begin with \fB/\fR, then it is created in
-\fB@RUNDIR@\fR.
-
-.TP
-\fB-f\fR, \fB--force\fR
-By default, when \fB-P\fR or \fB--pidfile\fR is specified and the
-specified pidfile already exists and is locked by a running process,
-\fBudatapath\fR refuses to start.  Specify \fB-f\fR or \fB--force\fR
-to cause it to instead overwrite the pidfile.
-
-When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
-effect.
-
-.TP
-\fB-D\fR, \fB--detach\fR
-Causes \fBudatapath\fR to detach itself from the foreground session and
-run as a background process.
-
-.TP
-.BR \-h ", " \-\^\-help
-Prints a brief help message to the console.
-
-.TP
-\fB-v\fImodule\fR[\fB:\fIfacility\fR[\fB:\fIlevel\fR]], \fB--verbose=\fImodule\fR[\fB:\fIfacility\fR[\fB:\fIlevel\fR]]
-Sets the logging level for \fImodule\fR in \fIfacility\fR to
-\fIlevel\fR.  The \fImodule\fR may be any valid module name (as
-displayed by the \fB--list\fR action on \fBvlogconf\fR(8)), or the
-special name \fBANY\fR to set the logging levels for all modules.  The
-\fIfacility\fR may be \fBsyslog\fR or \fBconsole\fR to set the levels
-for logging to the system log or to the console, respectively, or
-\fBANY\fR to set the logging levels for both facilities.  If it is
-omitted, \fIfacility\fR defaults to \fBANY\fR.  The \fIlevel\fR must
-be one of \fBemer\fR, \fBerr\fR, \fBwarn\fR, or \fBdbg\fR, designating
-the minimum severity of a message for it to be logged.  If it is
-omitted, \fIlevel\fR defaults to \fBdbg\fR.
-
-.TP
-\fB-v\fR, \fB--verbose\fR
-Sets the maximum logging verbosity level, equivalent to
-\fB--verbose=ANY:ANY:dbg\fR.
-
-.TP
-.BR \-V ", " \-\^\-version
-Prints version information to the console.
+.so lib/daemon.man
+.so lib/vlog.man
+.so lib/common.man
 
 .SH BUGS
 The userspace datapath's performance lags significantly behind that of
index 595148e97fb139eef0161e2bf4d32c68e48ad982..da07d4526e0daeb706deb7228862df34b12a68bf 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN dpctl
+
 .TH dpctl 8 "May 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -450,15 +452,8 @@ private key to identify a trustworthy controller.
 Specifies a PEM file containing the CA certificate used to verify that
 a switch is trustworthy.
 
-.TP
-.BR \-h ", " \-\^\-help
-Prints a brief help message to the console.
-
-@VLOG_OPTIONS@
-
-.TP
-.BR \-V ", " \-\^\-version
-Prints version information to the console.
+.so lib/vlog.man
+.so lib/common.man
 
 .SH EXAMPLES
 
index 304c3c7d7ba25e0f11c70a4d70fbd7d2c8bd1162..50e6975a0650d0b7ca1811cc27a085a0c071e514 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN ofp\-discover
+
 .TH ofp\-discover 8 "May 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -93,15 +95,8 @@ to cause it to instead overwrite the pidfile.
 When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
 effect.
 
-.TP
-.BR \-h ", " \-\^\-help
-Prints a brief help message to the console.
-
-@VLOG_OPTIONS@
-
-.TP
-.BR \-V ", " \-\^\-version
-Prints version information to the console.
+.so lib/vlog.man
+.so lib/common.man
 
 .SH BUGS
 
index 7b45bf0a7a5a3cfe6a703d72530cbfb83650c575..6c1298ca7f63805e86f2e36a1ed0639652eb3fea 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN ofp\-kill
+
 .TH ofp\-kill 8 "May 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -34,13 +36,7 @@ By default, \fBSIGTERM\fR is sent.
 Causes \fBofp\-kill\fR to ignore all errors without printing a message
 to \fBstderr\fR, and to exit with return code 0.
 
-.TP
-.BR \-h ", " \-\^\-help
-Prints a brief help message to the console.
-
-.TP
-.BR \-V ", " \-\^\-version
-Prints version information to the console.
+.so lib/common.man
 
 .SH "EXIT CODE"
 
index f1acf62b121dbfd379d9548005a8ba3579fe693b..b120a3874a9352f751b8919c9c55a9bf19939756 100644 (file)
@@ -1,3 +1,5 @@
+.ds PN vlogconf
+
 .TH vlogconf 8 "June 2008" "OpenFlow" "OpenFlow Manual"
 
 .SH NAME
@@ -171,10 +173,8 @@ is useful after rotating log files, to cause a new log file to be
 used.)
 
 .SH OPTIONS
-.TP
-\fB\-h\fR, \fB\-\^\-help\fR
-Prints a brief help message to the console and exits.
 
+.so lib/common.man
 
 .SH "SEE ALSO"