]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | # $Revision$, $Date$ | |
3 | ||
4 | # simple script that converts SGML-docbook references | |
5 | # using Steve Cheng's docbooc2man-spec perl converter | |
6 | # in case of <refentry lang="pl"> translates NAME and SYNOPSIS | |
7 | ||
8 | DIR="/usr/share/docbook2X" | |
9 | SPEC=$DIR/docbook2man-spec.pl | |
10 | MKLINKS=$DIR/manpage_makelinks.pl | |
11 | PROGNAME=`basename $0` | |
12 | ||
13 | if [ $# -eq 0 ]; then | |
14 | echo "$PROGNAME: No input file given"; | |
15 | exit; | |
16 | fi | |
17 | if [ $# -gt 1 ]; then | |
18 | echo "$PROGNAME: Too many arguments"; | |
19 | exit; | |
20 | fi | |
21 | ||
22 | if [ -x /usr/bin/onsgmls ]; then | |
23 | SP=onsgmls; | |
24 | else if [ -x /usr/bin/nsgmls ]; then | |
25 | SP=nsgmls; | |
26 | else | |
27 | echo "$PROGNAME: SGML parser missing"; | |
28 | exit; | |
29 | fi | |
30 | fi | |
31 | ||
32 | if [ ! -f "$1" ]; then | |
33 | echo "$PROGNAME: Unable to open file $1"; | |
34 | exit; | |
35 | fi | |
36 | ||
37 | ||
38 | if [ -f manpage.links ]; then | |
39 | echo "$PROGNAME: There is file \`manpage.links' in current dir. "\ | |
40 | "I need to create temporary file \`manpage.links'. Please remove "\ | |
41 | "existing file." | |
42 | exit 2; | |
43 | fi | |
44 | ||
45 | $SP <"$1" |sgmlspl $SPEC | |
46 | ||
47 | LANGM=`awk -v IGNORECASE=1 -v RS=">[^<>]*<" '/^refentry/ {if(i=index($0,"lang=")) print substr($0,i+6,2); exit}' $1` | |
48 | REFNAME=`awk -v IGNORECASE=1 -v RS="<\/?refname( [^>]*)?>" '{getline; print $0; exit}' $1` | |
49 | if [ -z "$REFNAME" ]; then | |
50 | echo "$PROGNAME: <refname> element missing" | |
51 | rm -f manpage.links | |
52 | exit; | |
53 | fi | |
54 | SECTION=`awk -v IGNORECASE=1 -v RS="<\/?manvolnum( [^>]*)?>" '{getline; print $0; exit}' $1` | |
55 | MAINFILE=${REFNAME}.${SECTION} | |
56 | ||
57 | if [ ! -f "$MAINFILE" ]; then | |
58 | echo "$PROGNAME: Failed to convert manpage"; | |
59 | rm -f manpage.links | |
60 | exit; | |
61 | fi | |
62 | ||
63 | # print main manpage name | |
64 | echo "$MAINFILE" | |
65 | ||
66 | case "$LANGM" in | |
67 | "pl" ) | |
68 | mv "$MAINFILE" $MAINFILE."$PROGNAME".tmp | |
69 | cat "$MAINFILE"."$PROGNAME".tmp |sed 's/^\.SH NAME$/\.SH NAZWA/' \ | |
70 |