packages feed

HaRe-0.6: tools/web/tree.cgi

#!/bin/bash

bin=/home/users/hallgren/cgi
. $bin/cgistart.sh

### Horizontal Tree
htree() {
  begin table
  begin caption; h4 "$1";end
  tr;
  ls -1 | while read dir ; do
    if [ -d "$dir" ] ; then
      case "$dir" in
	CVS|objs|junk|hi|tests) : ;;
	*) td; (cd "$dir"; htree "$dir")
      esac
    fi
  done
  end
}

### Vertical Tree
vtree() {
  begin table class=borderless
  tr; th "$2/"
  td
  begin table class=borderless
  tr;td;sed -n "s%^$1 \(.*\)\$%\1%p" <titles
  txt=README
  [ -r "$1/README.html" ] || txt="Files"
  link "$1/" "$txt" ; nl
  if [ $level -ge $maxlevel ] ; then
    link "tree.cgi?$1" more
  else
    ls -1 "$1" | while read node ; do
      dir="$1/$node"
      dir="${dir#./}" # remove ./ prefix
      if ! [ -h "$dir" ] && [ -d "$dir" ] && [ -d "$dir/CVS" ] ; then
	case "$node" in
	  CVS|tests|doc|spec|hsutils|toy|command) : ;;
	  *) tr;td;
	     level=$(($level+1)) vtree "$dir" "$node"
	esac
      fi
    done
  fi
  end
  end
}

maxlevel=6
level=1
pagestart "Directory Tree Overview"
vtree ${1-.} `basename "${1-$PWD}"`
endall