aboutsummaryrefslogtreecommitdiffstats
path: root/support/bashbug.sh
diff options
context:
space:
mode:
Diffstat (limited to 'support/bashbug.sh')
-rw-r--r--support/bashbug.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/support/bashbug.sh b/support/bashbug.sh
new file mode 100644
index 0000000..fb5600b
--- /dev/null
+++ b/support/bashbug.sh
@@ -0,0 +1,84 @@
+#!/bin/sh -
+#
+# bashbug - create a bug report and mail it to bug-bash@prep.ai.mit.edu
+#
+# configuration section:
+# these variables are filled in by the make target in cpp-Makefile
+#
+MACHINE="@MACHINE@"
+OS="@OS@"
+CC="@CC@"
+CFLAGS="@CFLAGS@"
+RELEASE="@RELEASE@"
+PATCHLEVEL="@PATCHLEVEL@"
+
+PATH=/bin:/usr/bin:usr/local/bin:$PATH
+export PATH
+
+TEMP=/tmp/bashbug.$$
+
+BUGADDR=${1-bug-bash@prep.ai.mit.edu}
+
+: ${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
+
+if [ -f /usr/lib/sendmail ] ; then
+ RMAIL="/usr/lib/sendmail"
+elif [ -f /usr/sbin/sendmail ] ; then
+ RMAIL="/usr/sbin/sendmail"
+else
+ RMAIL=rmail
+fi
+
+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
+
+Bash Version: $RELEASE
+Patch Level: $PATCHLEVEL
+
+Description:
+ [Detailed description of the problem, suggestion, or complaint.]
+
+Repeat-By:
+ [Describe the sequence of events that causes the problem
+ to occur.]
+
+Fix:
+ [Description of how to fix the problem. If you don't know a
+ fix for the problem, don't include this section.]
+EOF
+
+chmod u+w $TEMP
+cp $TEMP $TEMP.x
+
+if $EDITOR $TEMP
+then
+ if cmp -s $TEMP $TEMP.x
+ then
+ echo "File not changed, no bug report submitted."
+ exit
+ fi
+
+ ${RMAIL} $BUGADDR < $TEMP || {
+ cat $TEMP >> $HOME/dead.bashbug
+ echo "$0: mail failed: report saved in $HOME/dead.bashbug" >&2
+ }
+fi
+
+exit 0