home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
octave-1.1.1p1-src.tgz
/
tar.out
/
fsf
/
octave
/
octave-bug.in
< prev
next >
Wrap
Text File
|
1996-09-28
|
4KB
|
211 lines
#! /bin/sh -
#
# octave-bug - create a bug report and mail it to the bug-octave
# mailing list.
#
# Patterned after the bashbug script from bash 1.14.
#
# John W. Eaton
# jwe@che.utexas.edu
# Department of Chemical Engineering
# The University of Texas at Austin
# Configuration: these variables are filled in at configuration time.
VERSION="%VERSION%"
MACHINE="%TARGET_HOST_TYPE%"
F77="%F77%"
FFLAGS="%FFLAGS%"
FLIBS="%FLIBS%"
F2C="%F2C%"
F2CFLAGS="%F2CFLAGS%"
CC="%CC%"
CFLAGS="%CFLAGS%"
CXX="%CXX%"
CXXFLAGS="%CXXFLAGS%"
LDFLAGS="%LDFLAGS%"
DEFS="%DEFS%"
PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:$PATH
export PATH
TEMP=/tmp/octave-bug.$$
: ${EDITOR=emacs}
trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15
trap 'rm -f $TEMP $TEMP.x' 0
UN=
if (uname) > /dev/null 2>&1
then
UN=`uname -a`
fi
HAVE_FMT=false
if (fmt < /dev/null) > /dev/null 2>&1
then
HAVE_FMT=true
fi
ss_p=`echo $VERSION | grep "^ss-"`
if test -n "$ss_p"
then
BUGADDR="octave-maintainers@che.utexas.edu"
else
BUGADDR="bug-octave@che.utexas.edu"
fi
SUBJECT="[50 character or so descriptive subject here (for reference)]"
if test $# -gt 0
then
case "$1" in
-s)
shift
if test $# -gt 0
then
SUBJECT="$1"
shift
else
echo "usage: octave-bug [-s subject]"
exit 1
fi
;;
esac
fi
cat > $TEMP << EOF
To: $BUGADDR
Subject: $SUBJECT
--------
Bug report for Octave $VERSION configured for $MACHINE
Description:
-----------
* Please replace this item with a detailed description of the
problem. Suggestions or general comments are also welcome.
Repeat-By:
---------
* Please replace this item with a description of the sequence of
events that causes the problem to occur.
Fix:
---
* If possible, replace this item with a description of how to
fix the problem (if you don't have a fix for the problem, don't
include this section, but please do submit your report anyway).
Configuration (please do not edit this section):
-----------------------------------------------
uname output: $UN
Fortran compiler: $F77
FFLAGS: $FFLAGS
F2C: $F2C
F2CFLAGS: $F2CFLAGS
FLIBS: $FLIBS
C compiler: $CC
CFLAGS: $CFLAGS
C++ compiler: $CXX
CXXFLAGS: $CXXFLAGS
LDFLAGS: $LDFLAGS
DEFS:
EOF
if $HAVE_FMT
then
echo $DEFS | fmt | sed 's/^/ /' >> $TEMP
else
echo $DEFS >> $TEMP
fi
if test $# -gt 0
then
if test -f "$1"
then
cat >> $TEMP << EOF
User-preferences (please do not edit this section):
--------------------------------------------------
EOF
cat $1 >> $TEMP
fi
fi
chmod u+w $TEMP
cp $TEMP $TEMP.x
status=0
if $EDITOR $TEMP
then
if cmp -s $TEMP $TEMP.x
then
echo "file not changed -- no bug report submitted"
status=1
else
# Try to extract the recipient address, in case the To: line in the
# message template has been changed. Also get cc: lines.
TO_ADDR=`sed -e '/^--------[ \t]*$/q' $TEMP | sed -n -e 's/^[Tt][Oo]://p'`
CC_ADDR=`sed -e '/^--------[ \t]*$/q' $TEMP | sed -n -e 's/^[Cc][Cc]://p'`
if test -z "$TO_ADDR"
then
echo "no valid \`To:' field found in header -- using $BUGADDR instead"
else
BUGADDR="$TO_ADDR"
fi
BUGADDR="$BUGADDR $CC_ADDR"
# Delete the `--------' separator in the message.
# Don't pretty-print this. Odd whitespace kills Ultrix AWK!
awk 'BEGIN{in_header=1;} /^--------[ \t]*$/ {
if (in_header) { in_header=0; print ""; next; }
} { print $0; }' $TEMP > $TEMP.x
# Now try to mail it.
( /bin/mail $BUGADDR < $TEMP.x ) > /dev/null 2>&1
status=$?
if test $status -ne 0; then
( Mail -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1
status=$?
if test $status -ne 0; then
( /usr/ucb/mail -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1
status=$?
if test $status -ne 0; then
( mailx -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1
status=$?
fi
fi
fi
if test $status -ne 0; then
echo "unable to send mail -- saving message in \$HOME/dead.octave-bug";
cat $TEMP >> $HOME/dead.octave-bug;
exit 1
else
echo "bug report sent to: $TO_ADDR"
echo " cc to: $CC_ADDR"
fi
fi
else
echo "problems with edit -- no bug report submitted"
status=1
fi
exit $status