documentation fix
[docutils.git] / sandbox / manpage-writer / runtest-mandoc
blob133865662e1a13957d755545f8d43b606bede1b8
1 #!/bin/sh
3 # manpage tests using mandoc
5 # Contact: grubert@users.sourceforge.net
6 # Revision: $Revision: 8493 $
7 # Date: $Date: 2020-02-17 12:30:46 +0100 (Mo, 17. Feb 2020) $
8 # Copyright: This script has been placed in the public domain.
10 # mandoc arguments
12 # -K encoding
13 # Specify the input encoding.
14 # supported arguments us-ascii, iso-8859-1, and utf-8.
16 # If the first or second line of the input file matches the emacs mode line format
18 # .\" -*- [...;] coding: encoding; -*-
20 # then input is interpreted according to encoding.
22 # -T output
23 # Select the output format.
24 # Supported values for the output argument are ascii, html, the default
25 # of locale, man, markdown, pdf, ps, tree, and utf8.
27 IN_DIR=input
28 OUT_DIR=output-mandoc
29 EXP_DIR=expected-mandoc
31 #ENCS="latin1 utf8 ascii ps"
32 ENCS="utf8 ascii ps"
33 GROFF=""
35 if [ -z "$1" ] ; then
36 FILES=*.txt
37 else
38 FILES=$1
41 ERROR_CNT=0
43 inc_ERROR_CNT () {
44 ERROR_CNT=$(( ERROR_CNT + 1 ))
47 report_ERROR_CNT () {
48 echo "$ERROR_CNT errors"
51 CMD="python3 ../../docutils/tools/rst2man.py --traceback"
53 for IN_F in $IN_DIR/$FILES ; do
54 BASE=`basename $IN_F`
55 F_BASE=${BASE%.txt}
56 if echo $F_BASE | grep -q -- '-de\.' ; then
57 OPT="-l de"
58 else
59 OPT=""
61 $CMD $OPT $IN_F $OUT_DIR/$F_BASE.man
62 if [ $? -eq 0 ] ; then
63 diff -s -u $EXP_DIR/$F_BASE.man $OUT_DIR/$F_BASE.man
64 if [ $? -ne 0 ] ; then
65 inc_ERROR_CNT
67 for ENC in $ENCS ; do
68 if [ -e $EXP_DIR/$F_BASE.$ENC ] ; then
69 mandoc -T$ENC $OUT_DIR/$F_BASE.man > $OUT_DIR/$F_BASE.$ENC
70 diff -s -u $EXP_DIR/$F_BASE.$ENC $OUT_DIR/$F_BASE.$ENC
71 if [ $? -ne 0 ] ; then
72 inc_ERROR_CNT
75 done
77 done
79 if [ -n "$1" ] ; then
80 report_ERROR_CNT
81 exit
84 # language test
85 for L in "en" "de" ; do
86 for IN_F in $IN_DIR/docinfo-*.txt ; do
87 BASE=`basename $IN_F`
88 F_BASE=${BASE%.txt}
89 OPT="-l $L"
90 EXT="-l_$L"
91 $CMD $OPT $IN_F $OUT_DIR/$F_BASE$EXT.man
92 if [ $? -eq 0 ] ; then
93 diff -s -u $EXP_DIR/$F_BASE$EXT.man $OUT_DIR/$F_BASE$EXT.man
94 if [ $? -ne 0 ] ; then
95 inc_ERROR_CNT
98 done
99 done
101 report_ERROR_CNT