i-bash/support/bashbug.sh

144 lines
3 KiB
Bash
Raw Normal View History

1996-08-26 18:22:31 +00:00
#!/bin/sh -
#
1996-12-23 17:02:34 +00:00
# bashbug - create a bug report and mail it to the bug address
#
# The bug address depends on the release status of the shell. Versions
# with status `alpha' or `beta' mail bug reports to chet@po.cwru.edu.
1998-04-17 19:52:44 +00:00
# Other versions send mail to bug-bash@gnu.org.
1996-08-26 18:22:31 +00:00
#
# configuration section:
# these variables are filled in by the make target in cpp-Makefile
#
1996-12-23 17:02:34 +00:00
MACHINE="!MACHINE!"
OS="!OS!"
CC="!CC!"
CFLAGS="!CFLAGS!"
RELEASE="!RELEASE!"
PATCHLEVEL="!PATCHLEVEL!"
RELSTATUS="!RELSTATUS!"
MACHTYPE="!MACHTYPE!"
PATH=/bin:/usr/bin:/usr/local/bin:$PATH
1996-08-26 18:22:31 +00:00
export PATH
1997-06-05 14:59:13 +00:00
TEMP=/tmp/bbug.$$
# Figure out how to echo a string without a trailing newline
N=`echo 'hi there\c'`
case "$N" in
*c) n=-n c= ;;
*) n= c='\c' ;;
esac
BASHTESTERS="bash-testers@po.cwru.edu"
1996-08-26 18:22:31 +00:00
1996-12-23 17:02:34 +00:00
case "$RELSTATUS" in
alpha*|beta*) BUGBASH=chet@po.cwru.edu ;;
1998-04-17 19:52:44 +00:00
*) BUGBASH=bug-bash@gnu.org ;;
1996-12-23 17:02:34 +00:00
esac
1997-06-05 14:59:13 +00:00
case "$RELSTATUS" in
alpha*|beta*) echo "$0: This is a testing release. Would you like your bug report"
echo "$0: to be sent to the bash-testers mailing list?"
echo $n "$0: Send to bash-testers? $c"
read ans
case "$ans" in
y*|Y*) BUGBASH="${BUGBASH},${BASHTESTERS}" ;;
esac ;;
esac
BUGADDR="${1-$BUGBASH}"
1996-08-26 18:22:31 +00:00
: ${EDITOR=emacs}
1996-12-23 17:02:34 +00:00
: ${USER=${LOGNAME-`whoami`}}
1996-08-26 18:22:31 +00:00
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
if [ -f /usr/lib/sendmail ] ; then
RMAIL="/usr/lib/sendmail"
elif [ -f /usr/sbin/sendmail ] ; then
RMAIL="/usr/sbin/sendmail"
else
RMAIL=rmail
fi
1998-04-17 19:52:44 +00:00
# this is raceable
rm -f $TEMP
1996-08-26 18:22:31 +00:00
cat > $TEMP <<EOF
From: ${USER}
To: ${BUGADDR}
Subject: [50 character or so descriptive subject here (for reference)]
Configuration Information [Automatically generated, do not change]:
Machine: $MACHINE
OS: $OS
Compiler: $CC
Compilation CFLAGS: $CFLAGS
uname output: $UN
1996-12-23 17:02:34 +00:00
Machine Type: $MACHTYPE
1996-08-26 18:22:31 +00:00
Bash Version: $RELEASE
Patch Level: $PATCHLEVEL
1996-12-23 17:02:34 +00:00
Release Status: $RELSTATUS
1996-08-26 18:22:31 +00:00
Description:
1996-12-23 17:02:34 +00:00
[Detailed description of the problem, suggestion, or complaint.]
1996-08-26 18:22:31 +00:00
Repeat-By:
1996-12-23 17:02:34 +00:00
[Describe the sequence of events that causes the problem
to occur.]
1996-08-26 18:22:31 +00:00
Fix:
1996-12-23 17:02:34 +00:00
[Description of how to fix the problem. If you don't know a
fix for the problem, don't include this section.]
1996-08-26 18:22:31 +00:00
EOF
1998-04-17 19:52:44 +00:00
# this is still raceable
rm -f $TEMP.x
1996-08-26 18:22:31 +00:00
cp $TEMP $TEMP.x
1998-04-17 19:52:44 +00:00
chmod u+w $TEMP
1996-08-26 18:22:31 +00:00
1996-12-23 17:02:34 +00:00
trap '' 2 # ignore interrupts while in editor
until $EDITOR $TEMP; do
echo "$0: editor \`$EDITOR' exited with nonzero status."
echo "$0: Perhaps it was interrupted."
1997-06-05 14:59:13 +00:00
echo "$0: Type \`y' to give up, and lose your bug report;"
echo "$0: type \`n' to re-enter the editor."
1996-12-23 17:02:34 +00:00
echo $n "$0: Do you want to give up? $c"
read ans
case "$ans" in
1997-06-05 14:59:13 +00:00
[Yy]*) exit 1 ;;
1996-12-23 17:02:34 +00:00
esac
done
trap 'rm -f $TEMP $TEMP.x; exit 1' 2 # restore trap on SIGINT
if cmp -s $TEMP $TEMP.x
1996-08-26 18:22:31 +00:00
then
1996-12-23 17:02:34 +00:00
echo "File not changed, no bug report submitted."
exit
1996-08-26 18:22:31 +00:00
fi
1997-06-05 14:59:13 +00:00
echo $n "Send bug report? [y/n] $c"
read ans
case "$ans" in
[Nn]*) exit 0 ;;
esac
1996-12-23 17:02:34 +00:00
${RMAIL} $BUGADDR < $TEMP || {
cat $TEMP >> $HOME/dead.bashbug
echo "$0: mail failed: report saved in $HOME/dead.bashbug" >&2
}
1996-08-26 18:22:31 +00:00
exit 0