summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2007-03-28 18:15:37 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2007-03-28 18:15:37 +0000
commitbba1d3b1dab8ff88b311d30c55e0f61e0c789ee2 (patch)
tree2565f62bf10ac35a531b51673ac54a08181643cf
parentb9f09f9634daed595596c7f2c8640d605df43e81 (diff)
new C version written by ray is worlds better
-rw-r--r--gnu/usr.bin/sendbug/Makefile9
-rw-r--r--gnu/usr.bin/sendbug/sendbug.1175
-rw-r--r--gnu/usr.bin/sendbug/sendbug.sh546
3 files changed, 0 insertions, 730 deletions
diff --git a/gnu/usr.bin/sendbug/Makefile b/gnu/usr.bin/sendbug/Makefile
deleted file mode 100644
index eb9d12853ab..00000000000
--- a/gnu/usr.bin/sendbug/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# $OpenBSD: Makefile,v 1.2 1997/04/27 20:55:57 millert Exp $
-
-MAN= sendbug.1
-
-beforeinstall:
- install ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
- ${.CURDIR}/sendbug.sh ${DESTDIR}${BINDIR}/sendbug
-
-.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/sendbug/sendbug.1 b/gnu/usr.bin/sendbug/sendbug.1
deleted file mode 100644
index 2d1b98b8a7b..00000000000
--- a/gnu/usr.bin/sendbug/sendbug.1
+++ /dev/null
@@ -1,175 +0,0 @@
-.\" $OpenBSD: sendbug.1,v 1.14 2006/05/09 14:53:11 pedro Exp $
-.\"
-.\" ---------------------------------------------------------------------------
-.\"
-.\" Copyright (c) 1992, 1993 Free Software Foundation, Inc.
-.\"
-.\" Permission is granted to make and distribute verbatim copies of
-.\" this manual provided the copyright notice and this permission notice
-.\" are preserved on all copies.
-.\"
-.\" Permission is granted to copy and distribute modified versions of this
-.\" manual under the conditions for verbatim copying, provided that the
-.\" entire resulting derived work is distributed under the terms of a
-.\" permission notice identical to this one.
-.\"
-.\" Permission is granted to copy and distribute translations of this
-.\" manual into another language, under the above conditions for modified
-.\" versions, except that this permission notice may be included in
-.\" translations approved by the Free Software Foundation instead of in
-.\" the original English.
-.\"
-.\" ---------------------------------------------------------------------------
-.\"
-.\" man page for send-pr (by Heinz G. Seidl, hgs@cygnus.com)
-.\" updated Feb 1993 for GNATS 3.00 by Jeffrey Osier, jeffrey@cygnus.com
-.\"
-.\" This file is part of the Problem Report Management System (GNATS)
-.\" Copyright 1992 Cygnus Support
-.\"
-.\" 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 Library General Public
-.\" License along with this program; if not, write to the Free
-.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
-.\"
-.\" ---------------------------------------------------------------------------
-.Dd February 27, 2003
-.Dt SENDBUG 1
-.Sh NAME
-.Nm sendbug
-.Nd report a bug in
-.Ox
-.Sh SYNOPSIS
-.Nm sendbug
-.Op Fl LPV
-.Op Fl -version
-.Sh DESCRIPTION
-.Nm
-is a tool used to submit
-.Em problem reports
-(PRs) to the
-.Ox
-bugs database.
-.Nm
-invokes an editor on a problem report template (after filling
-in some fields with reasonable default values).
-When you exit the editor,
-.Nm
-sends the completed form to the
-.Ox
-bugs database.
-The PR will be assigned a unique number and stored in the bugs database
-according to its category.
-An automatic reply will be sent with an acknowledgement, citing the category
-and the PR number.
-.Pp
-The bugs database can be queried using the online bug tracking system
-available at
-.Pa http://www.openbsd.org/query-pr.html .
-This allows users to search for PRs based on either their PR number
-or content.
-.Pp
-To ensure that a PR is handled promptly, it should specify one of the
-available
-.Em categories
-to identify the problem area.
-Use
-.Nm
-.Fl L
-to see a list of categories.
-.Pp
-The more precise your problem description and the more complete your
-information, the faster the
-.Ox
-team will be able to solve your problem.
-.Pp
-The options are as follows:
-.Bl -tag -width Ds
-.It Fl L
-Print the list of available categories.
-No mail is sent.
-.It Fl P
-Print the form specified by the environment variable
-.Ev PR_FORM
-on standard output.
-If
-.Ev PR_FORM
-is not set, print the standard blank PR template.
-No mail is sent.
-.It Fl V
-Display the
-.Nm
-version number.
-.It Fl -version
-Same as
-.Fl V .
-.El
-.Pp
-Note: Use
-.Nm
-to submit problem reports rather than mailing them directly.
-Using both the template and
-.Nm
-itself will help ensure all necessary information will reach the
-.Ox
-bugs database.
-.Sh ENVIRONMENT
-.Bl -tag -width "PR_FORM"
-.It Ev EDITOR
-Specifies the editor to invoke on the template.
-The default editor is
-.Pa /usr/bin/vi .
-.It Ev PR_FORM
-Used as the file name of the template for your problem-report editing session.
-You can use this to start with a partially completed form (for example,
-a form with the identification fields already completed).
-.El
-.Sh HOW TO FILL OUT A PROBLEM REPORT
-Problem reports have to be in a particular form so that a program can
-easily manage them.
-Please remember the following guidelines:
-.Bl -bullet
-.It
-Describe only
-.Em one problem
-per problem report.
-.It
-For follow-up mail, use the same subject line as the one in the automatic
-acknowledgement.
-It consists of category, PR number and the original synopsis line.
-This allows the bugs database to relate several mail messages to a
-particular PR and to record them automatically.
-.It
-Please try to be as accurate as possible in the subject and/or synopsis line.
-.It
-The content of the PR is not confidential; it is sent out to a public
-mailing list.
-Sensitive, security-related issues should be sent via email to
-.Aq security@OpenBSD.org .
-.El
-.Sh HOW TO SUBMIT TEST CASES, CODE, ETC.
-Submit small code samples with the PR.
-Contact
-.Aq bugs@OpenBSD.org
-for instructions on submitting larger test cases and problematic source code.
-.Sh FILES
-.Bl -tag -width "/tmp/pbad.XXXXXXXXXX" -compact
-.It Pa /tmp/p.XXXXXXXXXX
-copy of PR used in editing session
-.It Pa /tmp/pf.XXXXXXXXXX
-copy of empty PR form (testing purposes)
-.It Pa /tmp/pbad.XXXXXXXXXX
-file for rejected PRs
-.El
-.Sh AUTHORS
-Jeffrey Osier, Brendan Kehoe, Jason Merrill,
-and Heinz G. Seidl (Cygnus Support).
diff --git a/gnu/usr.bin/sendbug/sendbug.sh b/gnu/usr.bin/sendbug/sendbug.sh
deleted file mode 100644
index 9f8b512c5cf..00000000000
--- a/gnu/usr.bin/sendbug/sendbug.sh
+++ /dev/null
@@ -1,546 +0,0 @@
-#!/bin/sh
-# Submit a problem report to a GNATS site.
-# Copyright (C) 1993 Free Software Foundation, Inc.
-# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a
-# version written by Heinz G. Seidl (hgs@cygnus.com).
-#
-# This file is part of GNU GNATS.
-# Modified by tholo for OpenBSD
-#
-# GNU GNATS 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, or (at your option)
-# any later version.
-#
-# GNU GNATS 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 GNU GNATS; see the file COPYING. If not, write to
-# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# $OpenBSD: sendbug.sh,v 1.16 2004/11/29 21:57:45 millert Exp $
-
-# The version of this sendbug.
-VERSION=3.97
-
-# The submitter-id for your site.
-SUBMITTER=net
-
-## Where the GNATS directory lives, if at all.
-#[ -z "$GNATS_ROOT" ] &&
-#GNATS_ROOT=xGNATS_ROOTx
-
-# The default mail address for PR submissions.
-GNATS_ADDR=gnats@openbsd.org
-
-## Where the gnats category tree lives.
-#DATADIR=xDATADIRx
-
-## If we've been moved around, try using GCC_EXEC_PREFIX.
-#[ ! -d $DATADIR/gnats -a -d "$GCC_EXEC_PREFIX" ] &&
-# DATADIR=${GCC_EXEC_PREFIX}../../../lib
-
-# The default release for this host.
-#DEFAULT_RELEASE="xDEFAULT_RELEASEx"
-
-# The default organization.
-DEFAULT_ORGANIZATION="net"
-
-## The default site to look for.
-#GNATS_SITE=xGNATS_SITEx
-
-## Newer config information?
-#[ -f ${GNATS_ROOT}/gnats-adm/config ] && . ${GNATS_ROOT}/gnats-adm/config
-
-# What mailer to use. This must come after the config file, since it is
-# host-dependent.
-if [ -f /usr/sbin/sendmail ]; then
- MAIL_AGENT="/usr/sbin/sendmail -oi -t"
-else
- MAIL_AGENT="/usr/lib/sendmail -oi -t"
-fi
-MAILER=`echo $MAIL_AGENT | sed -e 's, .*,,'`
-if [ ! -f "$MAILER" ]; then
- echo "$COMMAND: Cannot find mail program \"$MAILER\"."
- echo "$COMMAND: Please fix the MAIL_AGENT entry in the $COMMAND file."
- exit 1
-fi
-
-umask 077
-
-# Find a user name
-if [ "$LOGNAME" = "" ]; then
- if [ "$USER" != "" ]; then
- LOGNAME="$USER"
- else
- LOGNAME="UNKNOWN"
- fi
-fi
-
-# For '&' expansion in gecos
-TEMP=${LOGNAME}
-while test ${#TEMP} -gt 1; do
- TEMP=${TEMP%?}
-done
-typeset -u FIRSTCHAR=${TEMP}
-EXPANSION="${FIRSTCHAR}${LOGNAME#?}"
-
-# How to read the passwd database.
-if [ -f /bin/domainname ]; then
- if [ "`/bin/domainname`" != "" -a -f /usr/bin/ypcat ]; then
- PASSWD="/usr/bin/ypcat passwd 2>/dev/null | cat - /etc/passwd | grep '^$LOGNAME:' |
- cut -f5 -d':' | sed -e 's/,.*//' -e 's/\&/$EXPANSION/g'"
- fi
-fi
-if [ "$PASSWD" = "" ]; then
- PASSWD="cat /etc/passwd | grep '^$LOGNAME:' | cut -f5 -d':' | sed -e 's/,.*//' -e 's/\&/$EXPANSION/g'"
-fi
-
-if [ "`echo -n foo`" = foo ]; then
- ECHON=bsd
-elif [ "`echo 'foo\c'`" = foo ]; then
- ECHON=sysv
-else
- ECHON=none
-fi
-
-if [ $ECHON = bsd ] ; then
- ECHON1="echo -n"
- ECHON2=
-elif [ $ECHON = sysv ] ; then
- ECHON1=echo
- ECHON2='\c'
-else
- ECHON1=echo
- ECHON2=
-fi
-
-#
-
-if [ -z "$TMPDIR" ]; then
- TMPDIR=/tmp
-else
- if [ "`echo $TMPDIR | grep '/$'`" != "" ]; then
- TMPDIR="`echo $TMPDIR | sed -e 's,/$,,'`"
- fi
-fi
-
-TEMP=`mktemp $TMPDIR/p.XXXXXXXXXX` || exit 1
-REF=`mktemp $TMPDIR/pf.XXXXXXXXXX` || {
- rm -f $TEMP
- exit 1
-}
-
-FROM="$LOGNAME"
-if [ -z "$REPLYTO" ]; then
- REPLYTO="$LOGNAME"
-fi
-
-# Find out the name of the originator of this PR.
-if [ -n "$NAME" ]; then
- ORIGINATOR="$NAME"
-elif [ -f $HOME/.fullname ]; then
- ORIGINATOR="`sed -e '1q' $HOME/.fullname`"
-else
- ORIGINATOR="`eval \"$PASSWD\"`"
-fi
-
-if [ -n "$ORGANIZATION" ]; then
- if [ -f "$ORGANIZATION" ]; then
- ORGANIZATION="`cat $ORGANIZATION`"
- fi
-else
- if [ -f $HOME/.organization ]; then
- ORGANIZATION="`cat $HOME/.organization`"
- elif [ -n "$DEFAULT_ORGANIZATION" ]; then
- ORGANIZATION="$DEFAULT_ORGANIZATION"
- fi
-fi
-
-# If they don't have a preferred editor set, then use
-if [ -z "$VISUAL" ]; then
- if [ -z "$EDITOR" ]; then
- EDIT=/usr/bin/vi
- else
- EDIT="$EDITOR"
- fi
-else
- EDIT="$VISUAL"
-fi
-
-# Find out some information.
-ARCH=`( [ -f /bin/arch ] && /bin/arch ) || \
- ( [ -f /usr/bin/arch ] && /usr/bin/arch ) || echo ""`
-SYSTEM=`( [ -f /bin/uname ] && /bin/uname -s ) || \
- ( [ -f /usr/bin/uname ] && /usr/bin/uname -s ) || echo ""`
-RELEASE=`( [ -f /bin/uname ] && /bin/uname -r ) || \
- ( [ -f /usr/bin/uname ] && /usr/bin/uname -r ) || echo ""`
-MACHINE=`( [ -f /bin/machine ] && /bin/machine ) || \
- ( [ -f /usr/bin/machine ] && /usr/bin/machine ) || \
- ( [ -f /bin/uname ] && /bin/uname -m ) || \
- ( [ -f /usr/bin/uname ] && /usr/bin/uname -m ) || echo ""`
-if [ -n "$SYSTEM" -a -n "$RELEASE" ]; then
- SYSTEM="$SYSTEM $RELEASE"
-fi
-
-COMMAND=`echo $0 | sed -e 's,.*/,,'`
-#USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity]
-# [-c address] [--request-id] [--version]"
-USAGE="Usage: $COMMAND [-PVL] [--version]"
-REMOVE=
-BATCH=
-CC=
-SEVERITY_C=
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -r) ;; # Ignore for backward compat.
-# -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
-# shift ; GNATS_ADDR="$1"
-# EXPLICIT_GNATS_ADDR=true
-# ;;
-# -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
-# shift ; IN_FILE="$1"
-# if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then
-# echo "$COMMAND: cannot read $IN_FILE"
-# exit 1
-# fi
-# ;;
- -b | --batch) BATCH=true ;;
- -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
- shift ; CC="$1"
- ;;
- -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
- shift ; SEVERITY_C="$1"
- ;;
- -p | -P | --print) PRINT=true ;;
- -L | --list) FORMAT=norm ;;
- -l | -CL | --lisp) FORMAT=lisp ;;
-# --request-id) REQUEST_ID=true ;;
- -h | --help) echo "$USAGE"; exit 0 ;;
- -V | --version) echo "$VERSION"; exit 0 ;;
- -*) echo "$USAGE" ; exit 1 ;;
- *) echo "$USAGE" ; exit 1
-# if [ -z "$USER_GNATS_SITE" ]; then
-# if [ ! -r "$DATADIR/gnats/$1" ]; then
-# echo "$COMMAND: the GNATS site $1 does not have a categories list."
-# exit 1
-# else
-# # The site name is the alias they'll have to have created.
-# USER_GNATS_SITE=$1
-# fi
-# else
-# echo "$USAGE" ; exit 1
-# fi
- ;;
- esac
- shift
-done
-
-if [ -n "$USER_GNATS_SITE" ] && [ "$USER_GNATS_SITE" != "$GNATS_SITE" ]; then
- GNATS_SITE=$USER_GNATS_SITE
- GNATS_ADDR=$USER_GNATS_SITE-gnats
-fi
-
-#if [ -r "$DATADIR/gnats/$GNATS_SITE" ]; then
-# CATEGORIES=`grep -v '^#' $DATADIR/gnats/$GNATS_SITE | sort`
-#else
-# echo "$COMMAND: could not read $DATADIR/gnats/$GNATS_SITE for categories list."
-# exit 1
-#fi
-CATEGORIES="system user library documentation ports kernel alpha amd64 arm i386 m68k m88k mips ppc sgi sparc sparc64 vax"
-
-if [ -z "$CATEGORIES" ]; then
- echo "$COMMAND: the categories list for $GNATS_SITE was empty!"
- exit 1
-fi
-
-case "$FORMAT" in
- lisp) echo "$CATEGORIES" | \
- awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}'
- exit 0
- ;;
- norm) l=`echo "$CATEGORIES" | \
- awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } }
- END {print max + 1;}'`
- c=`expr 70 / $l`
- if [ $c -eq 0 ]; then c=1; fi
- echo "$CATEGORIES" | \
- awk 'BEGIN {print "Known categories:"; i = 0 }
- { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } }
- END { print ""; }'
- exit 0
- ;;
-esac
-
-ORIGINATOR_C='<name of the PR author (one line)>'
-ORGANIZATION_C='<organization of PR author (multiple lines)>'
-SYNOPSIS_C='<synopsis of the problem (one line)>'
-if [ -z "$SEVERITY_C" ]; then
- SEVERITY_C='<[ non-critical | serious | critical ] (one line)>'
-fi
-PRIORITY_C='<[ low | medium | high ] (one line)>'
-CATEGORY_C='<PR category (one line)>'
-CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>'
-RELEASE_C='<release number or tag (one line)>'
-ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>'
-DESCRIPTION_C='<precise description of the problem (multiple lines)>'
-HOW_TO_REPEAT_C='<code/input/activities to reproduce the problem (multiple lines)>'
-FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
-
-# Catch some signals. ($xs kludge needed by Sun /bin/sh)
-xs=0
-trap 'rm -f $REF $TEMP; exit $xs' 0
-trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP; xs=1; exit' 1 3 13 15
-trap : 2
-
-# If they told us to use a specific file, then do so.
-if [ -n "$IN_FILE" ]; then
- if [ "$IN_FILE" = "-" ]; then
- # The PR is coming from the standard input.
- if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
- sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP
- else
- cat > $TEMP
- fi
- else
- # Use the file they named.
- if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
- sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP
- else
- cat $IN_FILE > $TEMP
- fi
- fi
-else
-
- if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
- # If their PR_FORM points to a bogus entry, then bail.
- if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then
- echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM"
- sleep 1
- PRINT_INTERN=bad_prform
- fi
- fi
-
- if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
- cp $PR_FORM $TEMP ||
- ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit )
- else
- for file in $TEMP $REF ; do
- cat > $file << '__EOF__'
-SENDBUG: -*- sendbug -*-
-SENDBUG: Lines starting with `SENDBUG' will be removed automatically, as
-SENDBUG: will all comments (text enclosed in `<' and `>').
-SENDBUG:
-SENDBUG: Choose from the following categories:
-SENDBUG:
-__EOF__
-
- # Format the categories so they fit onto lines.
- l=`echo "$CATEGORIES" | \
- awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } }
- END {print max + 1;}'`
- c=`expr 61 / $l`
- if [ $c -eq 0 ]; then c=1; fi
- echo "$CATEGORIES" | \
- awk 'BEGIN {printf "SENDBUG: "; i = 0 }
- { printf ("%-'$l'.'$l's", $0);
- if ((++i % '$c') == 0) { printf "\nSENDBUG: " } }
- END { printf "\nSENDBUG:\n"; }' >> $file
-
- cat >> $file << __EOF__
-To: $GNATS_ADDR
-Subject:
-From: $FROM
-Cc: $CC
-Reply-To: $REPLYTO
-X-sendbug-version: $VERSION
-
-
->Submitter-Id: $SUBMITTER
->Originator: $ORIGINATOR
->Organization:
-${ORGANIZATION- $ORGANIZATION_C}
->Synopsis: $SYNOPSIS_C
->Severity: $SEVERITY_C
->Priority: $PRIORITY_C
->Category: $CATEGORY_C
->Class: $CLASS_C
->Release: ${DEFAULT_RELEASE-$RELEASE_C}
->Environment:
- $ENVIRONMENT_C
-`[ -n "$SYSTEM" ] && echo " System : $SYSTEM"`
-`[ -n "$ARCH" ] && echo " Architecture: $ARCH"`
-`[ -n "$MACHINE" ] && echo " Machine : $MACHINE"`
->Description:
- $DESCRIPTION_C
->How-To-Repeat:
- $HOW_TO_REPEAT_C
->Fix:
- $FIX_C
-__EOF__
- done
- fi
-
- if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then
- cat $TEMP
- xs=0; exit
- fi
-
- chmod u+w $TEMP
- if [ -z "$REQUEST_ID" ]; then
- eval $EDIT $TEMP
- else
- ed -s $TEMP << '__EOF__'
-/^Subject/s/^Subject:.*/Subject: request for a customer id/
-/^>Category/s/^>Category:.*/>Category: sendbug/
-w
-q
-__EOF__
- fi
-
- if cmp -s $REF $TEMP ; then
- echo "$COMMAND: problem report not filled out, therefore not sent"
- xs=1; exit
- fi
-fi
-
-#
-# Check the enumeration fields
-
-# This is a "sed-subroutine" with one keyword parameter
-# (with workaround for Sun sed bug)
-#
-SED_CMD='
-/$PATTERN/{
-s|||
-s|<.*>||
-s|^[ ]*||
-s|[ ]*$||
-p
-q
-}'
-
-
-while [ -z "$REQUEST_ID" ]; do
- CNT=0
-
- #
- # 1) Severity
- #
- PATTERN=">Severity:"
- SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
- case "$SEVERITY" in
- ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'."
- esac
- #
- # 2) Priority
- #
- PATTERN=">Priority:"
- PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
- case "$PRIORITY" in
- ""|low|medium|high) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'."
- esac
- #
- # 3) Category
- #
- PATTERN=">Category:"
- CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
- FOUND=
- for C in $CATEGORIES
- do
- if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi
- done
- if [ -n "$FOUND" ]; then
- CNT=`expr $CNT + 1`
- else
- if [ -z "$CATEGORY" ]; then
- echo "$COMMAND: you must include a Category: field in your report."
- else
- echo "$COMMAND: \`$CATEGORY' is not a known category."
- fi
- fi
- #
- # 4) Class
- #
- PATTERN=">Class:"
- CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
- case "$CLASS" in
- ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
- esac
-
- [ $CNT -lt 4 -a -z "$BATCH" ] &&
- echo "Errors were found with the problem report."
-
- while true; do
- if [ -z "$BATCH" ]; then
- $ECHON1 "a)bort, e)dit or s)end? $ECHON2"
- read input
- else
- if [ $CNT -eq 4 ]; then
- input=s
- else
- input=a
- fi
- fi
- case "$input" in
- a*)
- if [ -z "$BATCH" ]; then
- BAD=`mktemp $TMPDIR/pbad.XXXXXXXXXX` || exit 1
- echo "$COMMAND: the problem report remains in $BAD and is not sent."
- mv $TEMP $BAD
- else
- echo "$COMMAND: the problem report is not sent."
- fi
- xs=1; exit
- ;;
- e*)
- eval $EDIT $TEMP
- continue 2
- ;;
- s*)
- break 2
- ;;
- esac
- done
-done
-#
-# Remove comments and send the problem report
-# (we have to use patterns, where the comment contains regex chars)
-#
-# /^>Originator:/s;$ORIGINATOR;;
-sed -e "
-/^SENDBUG:/d
-/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;;
-/^>Synopsis:/s;$SYNOPSIS_C;;
-/^>Severity:/s;<.*>;;
-/^>Priority:/s;<.*>;;
-/^>Category:/s;$CATEGORY_C;;
-/^>Class:/s;<.*>;;
-/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;;
-/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;;
-/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
-/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
-/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
-" $TEMP > $REF
-
-if $MAIL_AGENT < $REF; then
- echo "$COMMAND: problem report sent"
- xs=0; exit
-else
- echo "$COMMAND: mysterious mail failure."
- if [ -z "$BATCH" ]; then
- BAD=`mktemp $TMPDIR/pbad.XXXXXXXXXX` || exit 1
- echo "$COMMAND: the problem report remains in $BAD and is not sent."
- mv $REF $BAD
- else
- echo "$COMMAND: the problem report is not sent."
- fi
- xs=1; exit
-fi