aboutsummaryrefslogtreecommitdiffstats
path: root/support/bashbug.sh
blob: fb5600b93f62db6ec74956a9bd597cb6eb974959 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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