xref: /netbsd-src/external/gpl2/texinfo/dist/util/install-info-html (revision 29619d2afe564e54d657b83e5a3ae89584f83720)
1*29619d2aSchristos#!@BASH@
2*29619d2aSchristos# Id: install-info-html,v 1.3 2004/04/11 17:56:47 karl Exp
3*29619d2aSchristos
4*29619d2aSchristosname=install-info-html
5*29619d2aSchristosversion=1.0
6*29619d2aSchristos
7*29619d2aSchristosall=
8*29619d2aSchristosindex_dir=.
9*29619d2aSchristos
10*29619d2aSchristos#
11*29619d2aSchristos# debugging
12*29619d2aSchristos#
13*29619d2aSchristosdebug_echo=:
14*29619d2aSchristos
15*29619d2aSchristos
16*29619d2aSchristos#
17*29619d2aSchristos# print usage
18*29619d2aSchristos#
19*29619d2aSchristosfunction help ()
20*29619d2aSchristos{
21*29619d2aSchristos	cat << EOF
22*29619d2aSchristos$name $version
23*29619d2aSchristosInstall HTML info document.
24*29619d2aSchristos
25*29619d2aSchristosUsage: $name [OPTION]... [DOCUMENT-DIR]...
26*29619d2aSchristos
27*29619d2aSchristosOptions:
28*29619d2aSchristos  -a,--all             assume all subdirectories of index to be DOCUMENT-DIRs
29*29619d2aSchristos  -d,--dir=DIR         set index directory to DIR (default=.)
30*29619d2aSchristos  -D,--debug           print debugging info
31*29619d2aSchristos  -h,--help            this help text
32*29619d2aSchristos  -v,--version         show version
33*29619d2aSchristosEOF
34*29619d2aSchristos}
35*29619d2aSchristos
36*29619d2aSchristos
37*29619d2aSchristosfunction cleanup ()
38*29619d2aSchristos{
39*29619d2aSchristos	$debug_echo "cleaning ($?)..."
40*29619d2aSchristos}
41*29619d2aSchristos
42*29619d2aSchristostrap cleanup 0 9 15
43*29619d2aSchristos
44*29619d2aSchristos#
45*29619d2aSchristos# Find command line options and switches
46*29619d2aSchristos#
47*29619d2aSchristos
48*29619d2aSchristos# "x:" x takes argument
49*29619d2aSchristos#
50*29619d2aSchristosoptions="adhvW:"
51*29619d2aSchristos#
52*29619d2aSchristos# ugh, "\-" is a hack to support long options
53*29619d2aSchristos# must be in double quotes for bash-2.0
54*29619d2aSchristos
55*29619d2aSchristoswhile getopts "\-:$options" O
56*29619d2aSchristosdo
57*29619d2aSchristos	$debug_echo "O: \`$O'"
58*29619d2aSchristos	$debug_echo "arg: \`$OPTARG'"
59*29619d2aSchristos	case $O in
60*29619d2aSchristos		a)
61*29619d2aSchristos			all=yes
62*29619d2aSchristos			;;
63*29619d2aSchristos		D)
64*29619d2aSchristos		 	[ "$debug_echo" = "echo" ] && set -x
65*29619d2aSchristos		      	debug_echo=echo
66*29619d2aSchristos			;;
67*29619d2aSchristos		h)
68*29619d2aSchristos      			help;
69*29619d2aSchristos			exit 0
70*29619d2aSchristos			;;
71*29619d2aSchristos		v)
72*29619d2aSchristos			echo $name $version
73*29619d2aSchristos			exit 0
74*29619d2aSchristos			;;
75*29619d2aSchristos		d)
76*29619d2aSchristos			index_dir=$OPTARG
77*29619d2aSchristos			;;
78*29619d2aSchristos	# a long option!
79*29619d2aSchristos	-)
80*29619d2aSchristos		case "$OPTARG" in
81*29619d2aSchristos			a*|-a*)
82*29619d2aSchristos				all=yes
83*29619d2aSchristos				;;
84*29619d2aSchristos			de*|-de*)
85*29619d2aSchristos				[ "$debug_echo" = "echo" ] && set -x
86*29619d2aSchristos				debug_echo=echo
87*29619d2aSchristos				;;
88*29619d2aSchristos			h*|-h*)
89*29619d2aSchristos				help;
90*29619d2aSchristos				exit 0
91*29619d2aSchristos				;;
92*29619d2aSchristos			di*|-di*)
93*29619d2aSchristos				index_dir="`expr \"$OPTARG\" ':' '[^=]*=\(.*\)'`"
94*29619d2aSchristos				;;
95*29619d2aSchristos			version|-version)
96*29619d2aSchristos				echo $name $version
97*29619d2aSchristos				exit 0
98*29619d2aSchristos				;;
99*29619d2aSchristos			*|-*)
100*29619d2aSchristos				echo "$0: invalid option -- \"$OPTARG\""
101*29619d2aSchristos				help;
102*29619d2aSchristos				exit -1
103*29619d2aSchristos				;;
104*29619d2aSchristos		esac
105*29619d2aSchristos	esac
106*29619d2aSchristosdone
107*29619d2aSchristosshift `expr $OPTIND - 1`
108*29619d2aSchristos
109*29619d2aSchristos#
110*29619d2aSchristos# Input file name
111*29619d2aSchristos#
112*29619d2aSchristosif [ -z "$all" ] && [ -z "$1" ]; then
113*29619d2aSchristos	help
114*29619d2aSchristos	echo "$name: No HTML documents given"
115*29619d2aSchristos	exit 2
116*29619d2aSchristosfi
117*29619d2aSchristos
118*29619d2aSchristosif [ -n "$all" ] && [ -n "$1" ]; then
119*29619d2aSchristos	echo "$name: --all specified, ignoring DIRECTORY-DIRs"
120*29619d2aSchristosfi
121*29619d2aSchristos
122*29619d2aSchristosif [ -n "$all" ]; then
123*29619d2aSchristos	document_dirs=`/bin/ls -d1 $index_dir`
124*29619d2aSchristoselse
125*29619d2aSchristos	document_dirs=$*
126*29619d2aSchristosfi
127*29619d2aSchristos
128*29619d2aSchristosindex_file=$index_dir/index.html
129*29619d2aSchristosrm -f $index_file
130*29619d2aSchristosecho -n "$name: Writing index: $index_file..."
131*29619d2aSchristos
132*29619d2aSchristos# head
133*29619d2aSchristoscat >> $index_file <<EOF
134*29619d2aSchristos<html>
135*29619d2aSchristos<head><title>Info documentation index</title></head>
136*29619d2aSchristos<body>
137*29619d2aSchristos<h1>Info documentation index</h1>
138*29619d2aSchristosThis is the directory file \`index.html' a.k.a. \`DIR', which contains the
139*29619d2aSchristostopmost node of the HTML Info hierarchy.
140*29619d2aSchristos<p>
141*29619d2aSchristosThis is all very much Work in Progress (WiP).
142*29619d2aSchristos<p>
143*29619d2aSchristos<ul>
144*29619d2aSchristosEOF
145*29619d2aSchristos
146*29619d2aSchristos#list
147*29619d2aSchristosfor i in $document_dirs; do
148*29619d2aSchristos	echo "<li> <a href=\"$i/$i.html\">$i</a></li>"
149*29619d2aSchristosdone >> $index_file
150*29619d2aSchristos
151*29619d2aSchristos# foot
152*29619d2aSchristoscat >> $index_file <<EOF
153*29619d2aSchristos</ul>
154*29619d2aSchristos</body>
155*29619d2aSchristos</html>
156*29619d2aSchristosEOF
157*29619d2aSchristosecho
158