#!/bin/sh 
# 1997.9.27 kdm

start='.'; if [ -n "$1" ];then start="$1"; fi
if [ ! -d $start ];then echo "\"$start\" is not a directory.";exit 1;fi
if [ ! -x $start ];then echo "Permission denied to search \"$start\".";exit 2;fi
cd $start; echo `pwd`

#### first version ####
# find . -type d | sort | sed -n -e'1b;s/[^\/]*\//+--/g;s/+--+/|  +/g;s/+--+/|  +/g;s/+--|/|  |/g;p'
# exit 0

find . -type d | sort | gawk '
{ gsub(/[^\/]*\//,"/"); line[NR]=$0;last=NR }
END{
        lead=":";
        l="  " lead; lead0=l l l l l l l l l l l l l l l l l l l l;
        for(i=last;2<=i;i--){
                match(line[i],/\/*/);len=RLENGTH;
                lead=substr(lead lead0,1,(len-1)*3);
                line[i]=lead "+--" substr(line[i],len+1);
                lead=lead "|";
        }
        for(i=2;i<=last;i++){print line[i]}
}'
#end
exit 0
