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