797
|
1 #! /bin/sh - |
|
2 # |
|
3 # octave-bug - create a bug report and mail it to the bug-octave |
|
4 # mailing list. |
|
5 # |
|
6 # Patterned after the bashbug script from bash 1.14. |
|
7 # |
|
8 # John W. Eaton |
1451
|
9 # jwe@bevo.che.wisc.edu |
|
10 # University of Wisconsin-Madison |
797
|
11 # Department of Chemical Engineering |
|
12 |
2155
|
13 # Configuration: these variables are filled in when running make to |
|
14 # compile Octave. |
797
|
15 |
2155
|
16 config_opts="%config_opts%" |
797
|
17 VERSION="%VERSION%" |
|
18 MACHINE="%TARGET_HOST_TYPE%" |
|
19 F77="%F77%" |
|
20 FFLAGS="%FFLAGS%" |
2155
|
21 FPICFLAG="%FPICFLAG%" |
1064
|
22 FLIBS="%FLIBS%" |
|
23 F2C="%F2C%" |
|
24 F2CFLAGS="%F2CFLAGS%" |
2155
|
25 CPPFLAGS="%CPPFLAGS%" |
|
26 INCFLAGS="%INCFLAGS%" |
797
|
27 CC="%CC%" |
2031
|
28 CC_VERSION="%CC_VERSION%" |
797
|
29 CFLAGS="%CFLAGS%" |
2155
|
30 CPICFLAG="%CPICFLAG%" |
797
|
31 CXX="%CXX%" |
2031
|
32 CXX_VERSION="%CXX_VERSION%" |
2138
|
33 CXXFLAGS="%BUG_CXXFLAGS%" |
2155
|
34 CXXPICFLAG="%CXXPICFLAG%" |
1064
|
35 LDFLAGS="%LDFLAGS%" |
2155
|
36 LIBFLAGS="%LIBFLAGS%" |
|
37 RLD_FLAG="%RLD_FLAG%" |
|
38 CXXLIBS="%CXXLIBS%" |
|
39 TERMLIBS="%TERMLIBS%" |
|
40 LIBS="%LIBS%" |
|
41 LEXLIB="%LEXLIB%" |
|
42 LIBPLPLOT="%LIBPLPLOT%" |
|
43 LIBDLFCN="%LIBDLFCN%" |
797
|
44 DEFS="%DEFS%" |
|
45 |
2031
|
46 CC_AND_VERSION= |
|
47 if test -n "$CC_VERSION"; then |
|
48 CC_AND_VERSION="$CC, version $CC_VERSION" |
|
49 fi |
|
50 |
|
51 CXX_AND_VERSION= |
|
52 if test -n "$CXX_VERSION"; then |
|
53 CXX_AND_VERSION="$CXX, version $CXX_VERSION" |
|
54 fi |
|
55 |
846
|
56 PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:$PATH |
797
|
57 export PATH |
|
58 |
|
59 TEMP=/tmp/octave-bug.$$ |
|
60 |
|
61 : ${EDITOR=emacs} |
|
62 |
|
63 trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15 |
|
64 trap 'rm -f $TEMP $TEMP.x' 0 |
|
65 |
|
66 UN= |
|
67 if (uname) > /dev/null 2>&1 |
|
68 then |
|
69 UN=`uname -a` |
|
70 fi |
|
71 |
|
72 HAVE_FMT=false |
|
73 if (fmt < /dev/null) > /dev/null 2>&1 |
|
74 then |
|
75 HAVE_FMT=true |
|
76 fi |
|
77 |
801
|
78 ss_p=`echo $VERSION | grep "^ss-"` |
|
79 if test -n "$ss_p" |
|
80 then |
1451
|
81 BUGADDR="octave-maintainers@bevo.che.wisc.edu" |
801
|
82 else |
1451
|
83 BUGADDR="bug-octave@bevo.che.wisc.edu" |
801
|
84 fi |
797
|
85 |
|
86 SUBJECT="[50 character or so descriptive subject here (for reference)]" |
|
87 if test $# -gt 0 |
|
88 then |
|
89 case "$1" in |
|
90 -s) |
801
|
91 shift |
797
|
92 if test $# -gt 0 |
|
93 then |
|
94 SUBJECT="$1" |
801
|
95 shift |
797
|
96 else |
|
97 echo "usage: octave-bug [-s subject]" |
|
98 exit 1 |
|
99 fi |
|
100 ;; |
|
101 esac |
|
102 fi |
|
103 |
|
104 cat > $TEMP << EOF |
|
105 To: $BUGADDR |
|
106 Subject: $SUBJECT |
851
|
107 -------- |
797
|
108 Bug report for Octave $VERSION configured for $MACHINE |
|
109 |
|
110 Description: |
|
111 ----------- |
|
112 |
|
113 * Please replace this item with a detailed description of the |
|
114 problem. Suggestions or general comments are also welcome. |
|
115 |
|
116 Repeat-By: |
|
117 --------- |
|
118 |
|
119 * Please replace this item with a description of the sequence of |
|
120 events that causes the problem to occur. |
|
121 |
|
122 Fix: |
|
123 --- |
|
124 |
|
125 * If possible, replace this item with a description of how to |
|
126 fix the problem (if you don't have a fix for the problem, don't |
|
127 include this section, but please do submit your report anyway). |
|
128 |
801
|
129 |
|
130 |
|
131 Configuration (please do not edit this section): |
|
132 ----------------------------------------------- |
|
133 |
|
134 uname output: $UN |
2155
|
135 configure opts: $config_opts |
801
|
136 Fortran compiler: $F77 |
|
137 FFLAGS: $FFLAGS |
1064
|
138 F2C: $F2C |
|
139 F2CFLAGS: $F2CFLAGS |
|
140 FLIBS: $FLIBS |
2155
|
141 CPPFLAGS: $CPPFLAGS |
|
142 INCFLAGS: $INCFLAGS |
2031
|
143 C compiler: $CC_AND_VERSION |
801
|
144 CFLAGS: $CFLAGS |
2155
|
145 CPICFLAG: $CPICFLAG |
2031
|
146 C++ compiler: $CXX_AND_VERSION |
801
|
147 CXXFLAGS: $CXXFLAGS |
2155
|
148 CXXPICFLAG: $CXXPICFLAG |
1064
|
149 LDFLAGS: $LDFLAGS |
2155
|
150 LIBFLAGS: $LIBFLAGS |
|
151 RLD_FLAG: $RLD_FLAG |
|
152 CXXLIBS: $CXXLIBS |
|
153 TERMLIBS: $TERMLIBS |
|
154 LIBS: $LIBS |
|
155 LEXLIB: $LEXLIB |
|
156 LIBPLPLOT: $LIBPLPLOT |
|
157 LIBDLFCN: $LIBDLFCN |
801
|
158 DEFS: |
|
159 |
797
|
160 EOF |
|
161 |
801
|
162 if $HAVE_FMT |
|
163 then |
|
164 echo $DEFS | fmt | sed 's/^/ /' >> $TEMP |
|
165 else |
|
166 echo $DEFS >> $TEMP |
|
167 fi |
|
168 |
|
169 if test $# -gt 0 |
|
170 then |
|
171 if test -f "$1" |
|
172 then |
|
173 cat >> $TEMP << EOF |
|
174 |
|
175 User-preferences (please do not edit this section): |
|
176 -------------------------------------------------- |
|
177 |
|
178 EOF |
|
179 cat $1 >> $TEMP |
|
180 fi |
|
181 fi |
|
182 |
797
|
183 chmod u+w $TEMP |
|
184 cp $TEMP $TEMP.x |
|
185 |
|
186 status=0 |
|
187 |
|
188 if $EDITOR $TEMP |
|
189 then |
|
190 if cmp -s $TEMP $TEMP.x |
|
191 then |
|
192 echo "file not changed -- no bug report submitted" |
|
193 status=1 |
2031
|
194 elif test `wc $TEMP | awk '{print $1}'` -eq 0; then |
|
195 echo "empty bug report file -- not submitted" |
|
196 status=1 |
797
|
197 else |
851
|
198 |
|
199 # Try to extract the recipient address, in case the To: line in the |
964
|
200 # message template has been changed. Also get cc: lines. |
851
|
201 |
964
|
202 TO_ADDR=`sed -e '/^--------[ \t]*$/q' $TEMP | sed -n -e 's/^[Tt][Oo]://p'` |
|
203 CC_ADDR=`sed -e '/^--------[ \t]*$/q' $TEMP | sed -n -e 's/^[Cc][Cc]://p'` |
|
204 |
|
205 if test -z "$TO_ADDR" |
851
|
206 then |
|
207 echo "no valid \`To:' field found in header -- using $BUGADDR instead" |
|
208 else |
964
|
209 BUGADDR="$TO_ADDR" |
851
|
210 fi |
|
211 |
964
|
212 BUGADDR="$BUGADDR $CC_ADDR" |
|
213 |
851
|
214 # Delete the `--------' separator in the message. |
|
215 |
1066
|
216 # Don't pretty-print this. Odd whitespace kills Ultrix AWK! |
|
217 |
|
218 awk 'BEGIN{in_header=1;} /^--------[ \t]*$/ { |
|
219 if (in_header) { in_header=0; print ""; next; } |
|
220 } { print $0; }' $TEMP > $TEMP.x |
851
|
221 |
|
222 # Now try to mail it. |
|
223 |
1067
|
224 ( /bin/mail $BUGADDR < $TEMP.x ) > /dev/null 2>&1 |
1066
|
225 status=$? |
|
226 if test $status -ne 0; then |
1067
|
227 ( Mail -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1 |
1066
|
228 status=$? |
|
229 if test $status -ne 0; then |
1067
|
230 ( /usr/ucb/mail -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1 |
1066
|
231 status=$? |
|
232 if test $status -ne 0; then |
1067
|
233 ( mailx -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1 |
1066
|
234 status=$? |
|
235 fi |
|
236 fi |
|
237 fi |
856
|
238 |
1066
|
239 if test $status -ne 0; then |
|
240 echo "unable to send mail -- saving message in \$HOME/dead.octave-bug"; |
|
241 cat $TEMP >> $HOME/dead.octave-bug; |
|
242 exit 1 |
|
243 else |
964
|
244 echo "bug report sent to: $TO_ADDR" |
|
245 echo " cc to: $CC_ADDR" |
|
246 fi |
797
|
247 fi |
|
248 else |
|
249 echo "problems with edit -- no bug report submitted" |
|
250 status=1 |
|
251 fi |
|
252 |
|
253 exit $status |