CI Commandfiles to generate HTML index



These commandfiles are developed by Donna Garverick.

The commandfile MKINDX:

anyparm path=/APACHE/PUB/html/mpe/cicat

setvar _mi_path "!path"

if _mi_path = "?"
   echo
   echo word(hpfile,'.') [path]
   echo
   echo This script is designed to produce an index.html in
   echo the given directory. Typically, this directory should
   echo contain other .html files that have no central indexing
   echo method. Specifically, the perl script 'cicat2html'
   echo produces a collection of .html files based on the contents
   echo of CICat.Pub.Sys. While it's a wonderful thing, it lacks
   echo the creation of index.html. This script remedies that.
   deletevar _mi@
   return
   endif

if pos('@',_mi_path) = 0
   if rht(_mi_path,1) <> '/'
      setvar _mi_path2 _mi_path+'/@'
   else
      setvar _mi_path2 _mi_path+'@'
      endif
   endif

if finfo("!_mi_path/index.html","exists")
   purge !_mi_path/index.html
   endif

purge mitemp,temp >$null
listfile !_mi_path2,6 > mitemp

setvar cjcw 0
grep "-i 'Non-existent'" < mitemp > $null
#--- cjcw = 0 means the above string was found
if cjcw = 0
   echo echo ERROR: ListFile of !_mi_path appears to have failed
   print mitemp
   return
   endif

#--- because this script uses anyparm, call a 2nd script to do
#--- the real work
mkindx2 < mitemp

if finfo("!_mi_path/index.html","exists")
   chmod "644 !_mi_path/index.html"
   purge mitemp,temp > $null
   deletevar _mi_@
else
   echo
   echo ERROR: !_mi_path/index.html was not created
   endif

The commandfile MKINDX2 called by MKINDX:

#--- build the index.html file as bytestream
build !_mi_path/index.html;rec=-1,,b,ascii;disc=15000000
file x=!_mi_path/index.html,old;acc=append

#--- the brackets for html tags cause all sorts of headaches...
#--- so put them into ci variables (la = left angle and ra=right angle)
setvar _mi_la '!<'
setvar _mi_ra '!>'

#--- start building the index page
#--- notice how _mi_la is quoted...the ending quote avoids having to insert
#    a space (cool)
echo !"_mi_la"html!_mi_ra >>*x
echo !"_mi_la"head!_mi_ra >>*x
echo !"_mi_la"title!_mi_ra >>*x
echo Index of all Commands and Variables >>*x
echo !"_mi_la"/title!_mi_ra >>*x
echo !"_mi_la"/head!_mi_ra >>*x
echo !"_mi_la"body!_mi_ra >>*x
echo !"_mi_la"a name="_top_"!_mi_ra!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"hr!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-a"!_mi_ra a!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-b"!_mi_ra b!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-c"!_mi_ra c!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-d"!_mi_ra d!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-e"!_mi_ra e!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-f"!_mi_ra f!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-g"!_mi_ra g!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-h"!_mi_ra h!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-i"!_mi_ra i!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-j"!_mi_ra j!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-k"!_mi_ra k!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-l"!_mi_ra l!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-m"!_mi_ra m!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-n"!_mi_ra n!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-o"!_mi_ra o!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-p"!_mi_ra p!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-q"!_mi_ra q!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-r"!_mi_ra r!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-s"!_mi_ra s!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-t"!_mi_ra t!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-u"!_mi_ra u!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-v"!_mi_ra v!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-w"!_mi_ra w!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-x"!_mi_ra x!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-y"!_mi_ra y!"_mi_la"/a!_mi_ra >>*x
echo !"_mi_la"a href="#thumb-z"!_mi_ra z!"_mi_la"/a!_mi_ra >>*x
echo >>*x
echo !"_mi_la"hr!_mi_ra >>*x
echo !"_mi_la"h1!_mi_ra >>*x
echo Index of all Commands and Variables >>*x
echo !"_mi_la"/h1!_mi_ra >>*x

setvar _mi_alphabet 'abcdefghijklmnopqrstuvwxyz'
setvar _mi_1st ''
setvar _mi_i 0

setvar _mi_eof1 finfo(HPSTDIN,"eof")
while setvar(_mi_eof1,_mi_eof1-1) >= 0
   input _mi_rec
#--- extract 'filename.html' from the end of the record
   setvar _mi_file word(_mi_rec,'/',wordcnt(_mi_rec,'/'))
#--- 1st is really 1st letter....
   while _mi_1st < lft(_mi_file,1)
      setvar _mi_i _mi_i + 1
      setvar _mi_1st str(_mi_alphabet,_mi_i,1)
#--- echo to stdlist just so we know the script is running
      echo !_mi_1st
#--- a little control break logic
      if _mi_1st > 'a'
         echo !"_mi_la"dd!_mi_ra !"_mi_la"a href="#_top_"!_mi_ra back to the top!"_ mi_la"/a!_mi_ra >>*x
         echo !"_mi_la"/dl!_mi_ra >>*x
         endif
      echo !"_mi_la"a name="thumb-!_mi_1st"!_mi_ra!_mi_la/a!_mi_ra >>*x
      echo !"_mi_la"h2!_mi_ra >>*x
      echo !"_mi_la"a name="thumb-!_mi_1st"!_mi_ra !_mi_1st !_mi_la/a!_mi_ra >>*x
      echo !_mi_la/h2!_mi_ra >>*x echo !"_mi_la"dl!_mi_ra >>*x
      endwhile
#--- (w/o the brackets...) dt a href="filename.html" filename /a
   echo !"_mi_la"dt!_mi_ra !"_mi_la"a href="!_mi_file"!_mi_ra![word(_mi_file,'.') ]!_mi_la/a!_mi_ra >>*x
   endwhile
#--- a little wrap up
echo !"_mi_la"/dl!_mi_ra >>*x
echo !"_mi_la"/body!_mi_ra >>*x
echo !"_mi_la"/html!_mi_ra >>*x