#!/bin/sh
######################################################################
# tirindex - Generate tir directory index.
# Created 2006-8-13 David Meyer.
######################################################################
# Identification #####################################################
PROGRAM='tirindex'
VERSION=0.1
COPYRIGHT='Copyright (C) 2006 David Meyer'
DESCRIPTION='Generate tir directory index.'
USAGE="Usage: $0 [-Vh] [DIRECTORY]"
CONTACT='David Meyer <papa@jtan.com>'
# Initialize environment #############################################
unset IFS
PATH=
BASENAME=/usr/bin/basename
CAT=/bin/cat
ECHO=/bin/echo
SED=/bin/sed
: ${TIRROOT:=/mnt/card/Meyer21C}
# Arguments ##########################################################
while getopts Vh option
do case $option in
V ) $ECHO "$PROGRAM $VERSION"
$ECHO $COPYRIGHT
exit 0
;;
h ) $CAT << ENDHELP
$USAGE
$DESCRIPTION
DIRECTORY defaults to current directory.
Options:
-V Display version number
-h Display this help message
Report bugs to $CONTACT.
ENDHELP
exit 0
;;
* ) $ECHO $USAGE >&2
exit 1
;;
esac
done
shift $(( $OPTIND-1 ))
HERE=${1:-.}
# Functions ##########################################################
cat_filter_root_path() {
if [ $HERE -ef $TIRROOT ]
then $SED -e 's:\.\./:./:' $1
else $CAT $1
fi
}
inherit_fn() {
fn=${2:?"Insufficient arguments: inherit_fn $@"}
if [ -f $fn ]
then eval $1=$fn
elif [ -f $TIRROOT/$fn ]
then eval $1=$TIRROOT/$fn
else eval $1=${3:-/dev/null}
fi
}
# Main driver ########################################################
cd $HERE
test -f .title && title=`$CAT .title`
test -f $TIRROOT/.title && site=`$CAT $TIRROOT/.title`
if [ x"${title:=`$BASENAME $HERE`}" = x"." ]
then title="Site under construction"
fi
#title_div
$ECHO "<h1>$title</h1>"
#test -f .image && image_div
if [ -f .image ]
then $ECHO '<div id="image">'
$ECHO "<img src=\"`cat_filter_root_path .image`\" />"
$ECHO '</div>'
fi
#test -f .description && description_div
if [ -f .description ]
then $ECHO '<div id="description">'
$CAT .description
$ECHO '</div>'
fi
objects=''
exits=''
for name in *
do if [ -f $name ]
then case $name in
index.html | *~ ) : ;;
*.html ) objects="$objects$name " ;;
* ) test ! -f ${name%.*}.html && objects="$objects$name " ;;
esac
elif [ -d $name ]
then exits="$exits$name "
fi
done
if [ "$objects" ]
then $ECHO '<div id="object-list">You see here:<ul>'
for obj in $objects
do name=${obj%.*}
ext=${obj##*.}
bullet_fn=.${obj}_icon
test -f $bullet_fn || inherit_fn bullet_fn .${ext}_icon
test -f $bullet_fn || inherit_fn bullet_fn ._object_icon $browser_icon_fn
test x"$ext" = x"$name" && ext=object
$ECHO -n "<li><a href=\"$obj\">"
test -f $bullet_fn && $ECHO -n "<img src=\"`cat_filter_root_path $bullet_fn`\" alt=\"$ext\"/>"
$ECHO "$name</a></li>"
done
$ECHO '</ul></div><!-- end div object-list -->'
fi
if [ "$exits" ]
then $ECHO '<div id="exit-list">Obvious ways out:<ul>'
for ex in $exits
do bullet_fn=$ex/.icon
test -f $bullet_fn || inherit_fn bullet_fn ._exit_icon $browser_icon_fn
$ECHO -n "<li><a href=\"$ex/index.html\">"
test -f $bullet_fn && $ECHO -n "<img src=\"`cat_filter_root_path $bullet_fn`\" alt=\"To: \"/>"
$ECHO "$ex</a></li>"
done
$ECHO '</ul></div><!-- end div exit-list -->'
fi
#test -f .copyright && copyright_div
if [ -f .copyright ]
then $ECHO '<div id="copyright">'
$CAT .copyright
$ECHO '</div>'
fi
#test -f .license && license_div
if [ -f .license ]
then $ECHO '<div id="license">'
cat_filter_root_path .license
$ECHO '</div>'
fi
exit