:
H='
==========
kfm [options] [file(s)]
==========
performs various archival manipulations on the Bibliofile
system.
==========
OPTIONS
==========
clean   cleans out junk files
perms   sets permissions
close   sets permissions to 700 for maintenance
==========
BUGS
==========
*       many dependencies
*       not all operations are consolidated here.
*       kill the script does not necessarily lead to removal of work
        files
==========
'
case $1 in
        -h|help|hint)   echo "$H"|more;exit 0;;
esac
:       ${SCRIPTS?}
:       ${NOTPUB?}
:       ${PUBKIN?}
:       ${HUM?}
:       ${PDP?}
:       ${EHK?}
USERLOG=$PUBKIN/USAGE/bibluser.log
export USERLOG
:
LIST={TMPDIR?/usr/tmp}kf$$.tmp
trap 'rm -f $LIST;exit' 0 1 2 3 4 14
:
CLEAN='
cd $PUBKIN
find . -type f -print | sed -n -f $SCRIPTS/filelist.kfm | sh
'
:
PERMS='
XEC=755
RDO=644
cd $PUBKIN
for i in . .. ../.. LOGS NOTPUB SCRIPTS KSH MAN USAGE MSDOS \
        SRC $EHK $PDP $HUM $HUM/MAN
do
if test -d $i
then
echo "$i exists"
continue
else
mkdir $i
echo "$i created"
fi
chmod $XEC $i
done
find $PDP        -type f ! -perm $RDO -exec chmod $RDO {} \; -print
find $EHK        -type f ! -perm $RDO -exec chmod $RDO {} \; -print
find $HUM        -type f ! -perm $XEC -exec chmod $XEC {} \; -print
find $HUM/MAN    -type f ! -perm $RDO -exec chmod $RDO {} \; -print
find $PUBKIN/MAN -type f ! -perm $RDO -exec chmod $RDO {} \; -print
find $PUBKIN/KSH -type f ! -perm $XEC -exec chmod $XEC {} \; -print
find $NOTPUB     -type f ! -perm $XEC -exec chmod $XEC {} \; -print
find ./[a-z]*    -type f ! -perm $XEC -exec chmod $XEC {} \; -print
chmod 777 USAGE
if test ! -s $USERLOG
then
> $USERLOG
echo "$USERLOG created"
fi
chmod 777 $USERLOG
'
CLOSE='
if test -s helpfind.x
then
find . -type f ! -perm 700 -print | helpfind.x -p 700
else
find . -type f ! -perm 700 -exec chmod 700 {} \;
fi
'
while   :
do
case $1 in
        -x)                     set -x;TRACE="-x";;
        -v)                     set -v;TRACE="-v";;
        perms)                  COMMAND=$PERMS;;
        clean)                  COMMAND="$CLEAN";;
                close)                                  COMMAND="$CLOSE";;
        -*|*)                   echo "$H" | more; exit 0;;
esac
case $# in
        0|1)    break;;
        *)      shift;;
esac
done
:
cat > $T <<END | sh $TRACE
$COMMAND
END
