#!/bin/sh # # File a bug against the GNU Privacy Guard. # # # Copyright (c) 2000 Thomas Roessler # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # SUBMIT="submit@bugs.guug.de" DEBIAN_SUBMIT="submit@bugs.debian.org" include_file () { echo echo "--- Begin $1" sed -e 's/^-/- -/' $1 | egrep -v '^[ ]*(#|$)' echo "--- End $1" echo } case `echo -n` in "") n=-n; c= ;; *) n=; c='\c' ;; esac exec > /dev/tty exec < /dev/tty SCRATCH=${TMPDIR-/tmp}/`basename $0`.`hostname`.$$ mkdir ${SCRATCH} || \ { echo "`basename $0`: Can't create temporary directory." >& 2 ; exit 1 ; } trap "rm -r -f ${SCRATCH} ; trap '' 0 ; exit" 0 1 2 TEMPLATE=${SCRATCH}/template.txt echo "Please enter a one-line description of the problem you experience:" echo $n "> $c" read SUBJECT echo $n "Do you want to include your personal GnuPG configuration files? [Y|n]$c" read personal case "$personal" in [nN]*) personal=no ;; *) personal=yes ;; esac if test -f /etc/debian_version ; then DEBIAN=yes echo $n "Checking whether GnuPG has been installed as a package... $c" GNUPGVERSION="`dpkg -l gnupg | grep ^i | awk '{print $3}'`" 2> /dev/null if test "$GNUPGVERSION" ; then DPKG=yes else DPKG=no fi echo "$DPKG" if test "$DPKG" = "no" ; then echo $n "File this bug with Debian? [Y|n]$c" read $DPKG case "$DPKG" in [nN]) DPKG=no ;; *) DPKG=yes ;; esac fi else DEBIAN=no DPKG=no fi test "$MUTTVERSION" || MUTTVERSION="`mutt -v | head -1 | awk '{print $2}' | tr -d i`" test "$DPKG" = "yes" && SUBMIT="$SUBMIT, $DEBIAN_SUBMIT" exec > ${TEMPLATE} echo "Subject: mutt-$MUTTVERSION: $SUBJECT" echo "To: $SUBMIT" echo "Cc: $LOGNAME" echo echo "Package: mutt" echo "Version: $MUTTVERSION" echo echo "-- Please type your report below this line" echo echo echo if test "$DEBIAN" = "yes" ; then echo "Obtaining Debian-specific information..." > /dev/tty bug -p -s dummy mutt | \ sed -n -e "/^-- System Information/,/^---/p" | \ grep -v '^---' fi echo echo "-- Mutt Version Information" echo mutt -v if test "$personal" = "yes" ; then CANDIDATES=".muttrc-${MUTTVERSION} .muttrc .mutt/muttrc-${MUTTVERSION} .mutt/muttrc" MATCHED="none" for f in $CANDIDATES; do if test -f "${HOME}/$f" ; then MATCHED="${HOME}/$f" break fi done if test "$MATCHED" = "none" ; then echo "WARNING: Can't find your personal .muttrc." >&2 else include_file $MATCHED fi fi if test "$global" = "yes" ; then CANDIDATES="Muttrc-${MUTTVERSION} Muttrc" DIRECTORIES="/etc /usr/local/share/mutt" MATCHED="none" for d in $DIRECTORIES ; do for f in $CANDIDATES; do if test -f $d/$f ; then MATCHED="$d/$f" break fi done test "$MATCHED" = "none" || break done if test "$MATCHED" = "none" ; then echo "WARNING: Can't find global Muttrc." >&2 else include_file $MATCHED fi fi exec > /dev/tty cp $TEMPLATE $SCRATCH/mutt-bug.txt input="e" while : ; do if test "$input" = "e" ; then ${VISUAL-vi} $SCRATCH/mutt-bug.txt if cmp $SCRATCH/mutt-bug.txt ${TEMPLATE} > /dev/null ; then echo "WARNING: Bug report was not modified!" fi fi echo $n "Submit, Edit, Print, Quit? [S|e|p|q]$c" read _input input="`echo $_input | tr EPSQ epsq`" case $input in e*) ;; p*) ${PAGER-more} $SCRATCH/mutt-bug.txt ;; s*|"") /usr/sbin/sendmail -t < $SCRATCH/mutt-bug.txt ; exit ;; q*) exit esac done