diff options
Diffstat (limited to 'scripts/gnupgbug')
-rw-r--r-- | scripts/gnupgbug | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/scripts/gnupgbug b/scripts/gnupgbug new file mode 100644 index 000000000..7cde6aa16 --- /dev/null +++ b/scripts/gnupgbug @@ -0,0 +1,185 @@ +#!/bin/sh + +# +# File a bug against the GNU Privacy Guard. +# + +# +# Copyright (c) 2000 Thomas Roessler <roessler@guug.de> +# +# +# 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 + |