Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e1feb8f

Browse files
committed
Support long options that take arguments of the form --option=value as well
as --option value. Minor nits cleaned up.
1 parent d82575d commit e1feb8f

1 file changed

Lines changed: 40 additions & 5 deletions

File tree

Doc/tools/mkhowto.sh

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ DISCARD_TEMPS=true
2222

2323
ICONSERVER=''
2424

25+
TEMPBASE=mkhowto-$LOGNAME-$$
26+
2527
L2H_INIT_FILE=$TOPDIR/perl/l2hinit.perl
26-
L2H_AUX_INIT_FILE=/usr/tmp/mkhowto-$LOGNAME-$$.perl
28+
L2H_AUX_INIT_FILE=/usr/tmp/$TEMPBASE.perl
2729

28-
LOGFILE=/usr/tmp/mkhowto-$LOGNAME-$$.how
30+
LOGFILE=/usr/tmp/$TEMPBASE.how
2931
LOGGING=''
3032

3133
usage() {
@@ -160,9 +162,23 @@ cleanup() {
160162
rm -f $1/IMG* $1/*.pl $1/WARNINGS $1/index.dat $1/modindex.dat
161163
}
162164

165+
parse_option() {
166+
# When using a long option with a parameter separated by '=',
167+
# generalize the parsing of the two:
168+
OPTION="$1"
169+
unset VALUE
170+
STUFF=`echo "$1" | grep '^--[-a-zA-Z0-9]*='`
171+
if [ "$STUFF" ] ; then
172+
# This leaves OPTION=--option= and VALUE=value
173+
OPTION=`echo "$STUFF" | sed 's/^\(--[-a-zA-Z0-9]*=\)\(.*\)$/\1/'`
174+
VALUE=`echo "$STUFF" | sed 's/^\(--[-a-zA-Z0-9]*=\)\(.*\)$/\2/'`
175+
fi
176+
}
177+
163178
# figure out what our targets are:
164179
while [ "$1" ] ; do
165-
case "$1" in
180+
parse_option "$1"
181+
case "$OPTION" in
166182
--all|--al)
167183
BUILD_PDF=true
168184
BUILD_PS=true
@@ -204,10 +220,18 @@ while [ "$1" ] ; do
204220
ICONSERVER="$2"
205221
shift 2
206222
;;
223+
--iconserver=*|--iconserve=*|--iconserv=*|--iconser=*|--iconse=*|--icons=*|--icon=*|--ico=*|--ic=*|--i=*)
224+
ICONSERVER="$VALUE"
225+
shift 1
226+
;;
207227
-a|--address|--addres|--addre|-addr|--add|--ad)
208228
ADDRESS="$2"
209229
shift 2
210230
;;
231+
--address=*|--addres=*|--addre=*|-addr=*|--add=*|--ad=*)
232+
ADDRESS="$VALUE"
233+
shift 1
234+
;;
211235
--a4)
212236
TEXINPUTS=$TOPDIR/paper-a4:$TEXINPUTS
213237
shift 1
@@ -219,10 +243,18 @@ while [ "$1" ] ; do
219243
LINK="$2"
220244
shift 2
221245
;;
246+
--link=*|--lin=*|--li=*)
247+
LINK="$VALUE"
248+
shift 1
249+
;;
222250
-s|--split|--spli|--spl|--sp|--s)
223251
MAX_SPLIT_DEPTH="$2"
224252
shift 2
225253
;;
254+
--split=|--spli=|--spl=|--sp=|--s=)
255+
MAX_SPLIT_DEPTH="$VALUE"
256+
shift 1
257+
;;
226258
-l|--logging|--loggin|--loggi|--logg|--log|--lo)
227259
LOGGING=true
228260
shift 1
@@ -244,7 +276,7 @@ while [ "$1" ] ; do
244276
break
245277
;;
246278
-*)
247-
usage 2
279+
usage 2 "Unknown option: ${VALUE%=}"
248280
;;
249281
*)
250282
break;;
@@ -277,6 +309,9 @@ fi
277309

278310
echo '# auxillary init file for latex2html' >$L2H_AUX_INIT_FILE
279311
echo '# generated by mkhowto.sh -- do no edit' >>$L2H_AUX_INIT_FILE
312+
if [ "$ICONSERVER" ] ; then
313+
ICONSERVER="${ICONSERVER%/}"
314+
fi
280315
l2hoption ICONSERVER "$ICONSERVER"
281316
l2hoption ADDRESS "$ADDRESS"
282317
l2hoption MAX_LINK_DEPTH "$MAX_LINK_DEPTH"
@@ -285,7 +320,7 @@ echo '1;' >>$L2H_AUX_INIT_FILE
285320

286321
for FILE in $@ ; do
287322
FILEDIR=`dirname $FILE`
288-
FILE=`basename ${FILE%.tex}`
323+
FILE=`basename $FILE .tex`
289324
#
290325
# Put the directory the .tex file is in is also the first directory in
291326
# TEXINPUTS, to allow files there to override files in the common area.

0 commit comments

Comments
 (0)