V10/cmd/docsubmit/docsubmit.sh

#	@(#)fulltext:docsubmit	1.18

# THis routine was originally written by Lorinda Cherry - it gathers up
# all the files connected with a documents, and transmits them via
# uucp to   mhuxd!~/full.text/
#
# It bundles all the files involved together into one cpio file
# called <1st 5 chars of machine name><process id>.cp

# Finding a good awk is a pain - set it here if you want
L=/usr/lib/docsubmit
AWK=""
if test -z "${AWK}"
then
    if ans=`sh -c 'logdir exptools' 2>&1` ; then
	:
    else
	ans=`grep '^exptools:' /etc/passwd | sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*/\1/"`
	fi
    if test -r ${ans}/bin/nawk
    then
	AWK=${ans}/bin/nawk
	fi
    fi
if test -z "${AWK}"
then
    if test -r /usr/local/bin/awk
    then
	AWK=/usr/local/bin/awk
	fi
    fi
if test -z "${AWK}"
then
    AWK=awk
    fi

# Get machine nodename - swiped from rn build routine Configure
if ans=`sh -c hostname 2>&1` ; then
    MACH=$ans
elif ans=`sh -c 'uuname -l' 2>&1` ; then
	MACH=$ans
elif ans=`sh -c 'uname -n' 2>&1` ; then
	MACH=$ans
else
	MACH=failedget
	fi
# Get the users LOGNAME
if ans=`sh -c logname 2>&1` ; then
    LOGNAME=$ans
else
    LOGNAME=`echo $HOME|sed 's/.*\///'`
    fi

T=/tmp
AWKTEMP=/tmp/Doc.Awk.$$
OUTP="junk"
COVER="junk"
DOCNUM="junk"
REF=""
# cut the machine name down to a max of 5 characters
DIR=`echo ${MACH} | sed 's/\(.....\).*/\1/'`$$
NAME=$DIR
DIR=$T/$DIR
trap 'rm -f ${AWKTEMP} $DIR/* $T/$NAME.cp ; rmdir $DIR 2>>/dev/null; trap 0;exit' 0 1 2 15
if test $# -eq 0
then
	echo "docsubmit -C -c file.cover -N number -r ref_file -t  file(s)"
	echo "   -C if document complete without coversheet, else -c file.cover"
	echo "   -N number   if document number not included in the files"
	echo "   -r to include a refer file"
	echo "   -t if source is Knuths TeX instead of troff/nroff\n"
	echo "  Two examples, first with cover sheet, second without:"
	echo "    docsubmit -c mydoc.cover mydoc.text mydoc.append"
	echo "    docsubmit -C -N 79111-880324-01 mydoc.text"
	exit 0
fi
for i in $*
do case $i in
    -r) shift; REF=$1; shift; continue;;
    -c) shift; COVER=$1; shift; continue;;
    -C) shift; COVER=$$; continue;;
    -t) shift; TEX="yes"; ARG=$1; shift; continue;;
    -N) shift; DOCNUM=$1; shift; continue;;
    -*) echo docsubmit unknown flag $i; exit 1;;
    esac
    done
ARGS=$*
if test "$COVER" = "junk" 
then
    echo "You must include the coversheet file for the paper to be submitted"
    echo "If the coversheet is in the files (or the files are the complete document),"
    echo "       indicate this by using the -C flag"
    echo "Use the flag  -N number   if document number not included in the files"
    echo "     ===> Full text of document not sent <==="
    exit 1
    fi

# check the entered document number
if test ${DOCNUM} != "junk"
then
    x=`expr "${DOCNUM}" : '^[a-zA-Z0-9]*-[89][0-9]*-[0-9][0-9]'`
    if test $x -lt 2
    then
	echo "\nDocument numbers must be of form  OrgNum-Date-seq"
	echo "   Where Date is usually YYMMDD (e.g. 881224) [always starts with a year]"
	echo "   and the sequence number is always 2 digits (e.g. 03)"
	echo "     ===> Full text of document not sent <==="
	exit 1
	fi
    fi
OUTP=$DIR/$NAME
mkdir $DIR
if test $TEX
then
	case $OUTP in
	*.*) echo "the name for a TeX paper cannot contain . tex gets confused"
		echo "	use _ or - instead"
		exit 1
	esac
	BBL=$OUTP.bbl
	OUTP=$OUTP.tex
	echo "%...\\\"" `date` >$OUTP
	echo "%...\\\"" EmailAddress ${MACH}"!"${LOGNAME} >>$OUTP
	if test "${DOCNUM}" != "junk"
	then
	    echo "%...\\\" DocNum ${DOCNUM}" >>$OUTP
	    fi
	echo "%...\\\"" `pwd` >>$OUTP
	${AWK} -f $L/tex.awk dir=$DIR texinp=$TEXINPUTS $ARG.tex >>$OUTP
	# Check that it ended okay
	if test $? -ne 0
	then
	    echo "Sorry - couldnt collect together the full text of your document."
	    echo "No full text was sent! Contact the docsubmit provider with questions."
	    exit 1 
	    fi

	if test -s $ARG.bbl
	then
		cp $ARG.bbl $BBL
	else if test \( -s $ARG.bib \) -a \( ! -s $DIR/$ARG.bib \)
	then
		cp $ARG.bib $BIB
	fi
	fi
else
	echo "...\\\"" `date` >$OUTP
	echo "...\\\"" EmailAddress ${MACH}"!"${LOGNAME} >>$OUTP
	if test "${DOCNUM}" != "junk"
	then
	    echo "...\\\" DocNum ${DOCNUM}" >>$OUTP
	    fi
	echo "...\\\"" `pwd` >>$OUTP
	if test $REF
	then
	cat >>$OUTP <<x
...\"refer first
x
	fi
	if test $COVER = $$
	then
		PARMS="$ARGS"
	else
		PARMS="$COVER $ARGS"
	fi
	${AWK} -f $L/troff.awk dir=$DIR $PARMS >>$OUTP
	if test $? -ne 0
	then
	    echo "Sorry - couldnt collect together the full text of your document."
	    echo "No full text was sent! Contact the docsubmit provider with questions."
	    exit 1 
	    fi

	if test $REF
	then
	cat >>$OUTP <<x
...\"refer begin
x
	cat $REF >>$OUTP
	cat >>$OUTP <<x
...\"refer end
x
	fi
fi
cd $T
ls $NAME/*|cpio -oc >$NAME.cp
chmod 0644 $NAME.cp
uucp -C $NAME.cp mhuxd!~/full.text/
echo "
The full text of your document has been sent to the Library Network.
Please note that an official paper copy MUST still be filed.
"
exit 0