[net.sources] another vms-style help program

davidra@batcomputer.tn.cornell.edu (Penguin ) (12/03/86)

There are several really very good vms-style help programs for
UNIX, but what follows (a csh-script) must be about the simplest.


----------------------------CUT HERE-------------------------------------------
#!/bin/csh
echo Help shell script
echo " "

#constants
set HELPDIR=~davidra/gnuplot/help

#initialize levels
set dir={$HELPDIR}
cd {$dir}
set levels=("" "" "" "" "" "" "" "" "" "")
set level=0
set new=2					#next topic is new

#initial stuff
cat .caveat
echo -n Type \<CR\> to continue
set request=($<)

loop:
#reset dir variable
set dir={$HELPDIR}
set i=1
while ( $i <= $level )
	set dir={$dir}/{$levels[$i]}
	@ i++
end
echo " "

if ( -e .HLP  && $new > 1 ) then
	clear
	more .HLP
	echo " "
endif
if ( $new > 0 ) then
	echo "Topics: "
	ls -C *.HLP | sed s/\.HLP//g		#list HLP files
	echo " "
	echo "Subtopics: "
	ls -dC `ls | fgrep -v .HLP`
	echo " "
endif
echo -n Topic or subtopic or .. or quit or \<CR\>:\ 
set new=0					#no longer new

set request=($<)
if ( {$request} == {} ) then
	set new=1				#give list again
else if ( {$request} == quit ) then
	exit 0
else if ( {$request} == .. ) then			#go back
	set new=2				#"new" topic
	if ( $level == 0 ) goto loop		#can't go back any further
	@ level--				#go back one
	cd ..
else if ( -d {$request} ) then
	set new=2				#really new topic
	cd {$request}
	@ level++
	set levels[$level]={$request}
else if ( -e {$request}.HLP ) then
	more {$request}.HLP
else
	echo "not found"
	set new=1				#give list again
endif
goto loop