12.6 Eigene Manpages erstellen
Neben einer vernünftigen Dokumentation, die als Textdatei, HTML, PDF oder als was auch immer vorliegen kann, ist es unter Unix und Linux üblich, für eigene Programme eine Manpage zu erstellen. Eine Manpage erklärt im Groben die Funktionsweise eines Programms und die Parameter, die man ihm übergeben kann.
12.6.1 groff nutzen
Zur Erstellung einer Manpage nutzt man das Tool groff. Dabei wird eine Textdatei erstellt, aus der groff anschließend eine Manpage erstellt.
Gearbeitet wird dabei ähnlich wie in LaTeX oder HTML: Man verwendet Befehle, die Formatierungsanweisungen für einen Interpreter/Compiler darstellen. Im Folgenden wollen wir Ihnen die wichtigsten Befehle vorstellen, die man zur Erstellung von Manpages mit groff verwendet.
-
.TH NAME SEKTION
Dieser Befehl legt den Namen einer Manpage (in der Regel ist das der Name des Programms) sowie die Sektion fest, der sie angehört. -
.SH NAME
.SH leitet eine Manpage-Sektion (zum Beispiel NAME, AUTHOR oder DESCRIPTION) ein. Betrachten Sie einmal eine typische Manpage, um sich einen Überblick über häufig verwendete Sektionen zu verschaffen. -
.RS
Dieser Befehl bewirkt einen 7-Zeichen-Einschub gegenüber der vorhergehenden Zeile. So kann eine Manpage hierarchisch gegliedert und übersichtlicher gehalten werden. -
.I
Der .I-Befehl bewirkt, dass der Text einer Zeile unterstrichen oder kursiv gesetzt wird. -
.IP
Zur Aufzählung einzelner Parameter für ein Programm wird in der Regel der Befehl .IP verwendet. Hinter ihn setzt man den Parameter (also etwa -r) und in die darauffolgende Zeile die entsprechende Erklärung dazu.
Eine Manpage könnte in etwa folgendermaßen aussehen:
.TH MeinTool 1 .SH NAME MeinTool ein ganz prima feines Tool .SH SYNOPSIS .B MeinTool [-v] [-l .I config-file .B ] .SH DESCRIPTION MeinTool kann alles, was andere Tools nicht koennen. .SH OPTIONS .IP -v Ausfuehrliche Meldungen ausgeben. .IP "-l config-file" Falls nicht die Standard-Konfigurationsdatei verwendet werden soll, kann ueber diesen Parameter eine Alternative ( .I config-file ) angegeben werden. .SH BUGS Manchmal funktioniert MeinTool, aber in der Regel sollte man sich nicht darauf verlassen. .SH AUTHOR Steffen Wendzel .SH "SEE ALSO" .BR reboot (8)
Listing 12.42 Eine exemplarische Manpage
Um aus diesem Textbatzen eine Manpage zu generieren, rufen Sie groff mit dem Parameter -man auf. Möchten Sie nicht gerade eine PostScript-Datei generiert haben, so verwenden Sie -Tascii, damit groff die Manpage im ASCII-Format ausgibt.
# PostScript-Datei: $ groff -man mytool.1 > mytool.ps # ASCII-Manpage: $ groff -man -Tascii mytool.1 | less
Listing 12.43 groff aufrufen
12.6.2 Manpages installieren
Um die Manpage auch im System zu installieren, haben Sie zwei Möglichkeiten:
-
Kopieren Sie die Quelldatei der Manpage (die Datei mit den Anweisungen für groff) in das entsprechende Sektionsverzeichnis des lokalen Manpage-Verzeichnisses. Die Sektionsverzeichnisse heißen man1 für Sektion 1, man2 für Sektion 2 und so weiter; sie befinden sich i. d. R. im Verzeichnis /usr/local/man/.
$ cp mytool.1 /usr/local/man/man1/
Listing 12.44 Kopieren
-
Leiten Sie die ASCII-Ausgaben von groff in ein Verzeichnis einer cat-Sektion. Ein solches Verzeichnis befindet sich ebenfalls im lokalen Manpage-Verzeichnis.
$ groff -man -Tascii mytool.1 >/usr/local/man/cat1/mytool.0
Listing 12.45 groff umleiten
Abbildung 12.1 Die fertige Manpage
Beide Installationsmöglichkeiten eignen sich auch hervorragend, um die Manpage über ein install-Target eines Makefiles zu installieren.