freebsd-ports/databases/gnats/files/gnats-edit-pr.patch
Steve Price a23d18d6d7 Put the freefall-specific patches behind a WANT_FREEFALL_CFG knob. Moved
Paul's changes to files/gnats-edit-pr.patch.  Added [1] the ability to track
class changes with a change message.  Also added [2] a URL to the problem
report online in the 'thank you' message when a new report is submitted.

Submitted by:	[1] sheldonh
Inspired by:	[2] archie@whistle.com
2000-05-29 04:05:09 +00:00

127 lines
3.8 KiB
Diff

--- gnats/gnats-edit-pr.sh.orig Tue Apr 20 16:17:07 1999
+++ gnats/gnats-edit-pr.sh Sun May 28 09:27:12 2000
@@ -124,15 +124,18 @@
*)
if [ "`echo $1 | grep /`" != "" ]; then
- pr_id=`echo $1 | awk -F"/" '{print $2}' -`
+ pr=`echo $1 | awk -F"/" '{print $2}' -`
else
- pr_id=$1
+ pr=$1
fi
+ prs="$prs $pr"
;;
esac
shift
done
+for pr_id in $prs ; do
+
# set command here to always pass host and port, and directory if supplied
if [ "$mode" = "network" ]; then
prog="nedit-pr"
@@ -192,7 +195,7 @@
if cmp -s $new.old $new ; then
echo "$prog: PR not changed"
$PR_EDIT --unlock $pr_id
- exit 0
+ continue
fi
# error-check output by calling pr-edit --check; if mistakes exist,
@@ -229,6 +232,8 @@
new_resp="`sed -n '/^>Responsible:/{s,^>[-a-zA-Z]*: *,,;s, *(.*,,g;p;q;}' $new`"
old_synopsis="`sed -n '/^>Synopsis:/{s,^>[-a-zA-Z]*: *,,;p;q;}' $new.old`"
new_synopsis="`sed -n '/^>Synopsis:/{s,^>[-a-zA-Z]*: *,,;p;q;}' $new`"
+old_class="`sed -n '/^>Class:/{s,^>[-a-zA-Z]*: *,,;p;q;}' $new.old`"
+new_class="`sed -n '/^>Class:/{s,^>[-a-zA-Z]*: *,,;p;q;}' $new`"
full_id="`sed -n '/^>Category:/{s,^>[-a-zA-Z]*: *,,;p;q;}' $new`/$pr_id"
# If you can read this, you may have a future in sed(1) programming.
@@ -256,8 +261,12 @@
if [ "$old_resp" != "$new_resp" ]; then
resp_change=yes
fi
+if [ "$old_class" != "$new_class" ]; then
+ class_change=yes
+fi
-if [ ! -z "$state_change" ] || [ ! -z "$resp_change" ]; then
+if [ ! -z "$state_change" ] || [ ! -z "$resp_change" ] || \
+ [ ! -z "$class_change" ]; then
# we've got a change
mail_to="$me"
if [ ! -z "$state_change" ]; then
@@ -266,14 +275,38 @@
echo State-Changed-By: $me >> $change_msg
echo State-Changed-When: $DATE >> $change_msg
echo "State-Changed-Why: " >> $change_msg
- echo 'Why did the state change? (Ctrl-D to end)'
- cat >> $change_msg
+ if [ -e /tmp/chng.$$ ]; then
+ echo "Re-use last message (y/n)?"
+ read yesno
+ if [ "$yesno" != "y" ]; then
+ cat /home/gnats/gnats-adm/edit-pr-msg > /tmp/chng.$$
+ fi
+ else
+ cat /home/gnats/gnats-adm/edit-pr-msg > /tmp/chng.$$
+ fi
+ $VISUAL /tmp/chng.$$
+ sed '/^GNATS:/d' /tmp/chng.$$ >> $change_msg
to_old=1
to_subm=1
+ if [ ! -z "$class_change" ] || [ ! -z "$resp_change" ]; then
+ echo "" >> $change_msg
+ echo "" >> $change_msg
+ fi
fi
- if [ ! -z "$state_change" ] && [ ! -z "$resp_change" ]; then
- echo "" >> $change_msg
- echo "" >> $change_msg
+ if [ ! -z "$class_change" ]; then
+ $debug_print "Doing class change."
+ echo Class-Changed-From-To: "$old_class"'->'"$new_class" >> $change_msg
+ echo Class-Changed-By: $me >> $change_msg
+ echo Class-Changed-When: $DATE >> $change_msg
+ echo "Class-Changed-Why: " >> $change_msg
+ echo 'Why did the class change? (Ctrl-D to end)'
+ cat >> $change_msg
+ to_old=1
+ to_new=1
+ if [ ! -z "$resp_change" ]; then
+ echo "" >> $change_msg
+ echo "" >> $change_msg
+ fi
fi
if [ ! -z "$resp_change" ]; then
$debug_print "Doing responsible change."
@@ -287,6 +320,9 @@
to_new=1
fi
+ echo "" >> $change_msg
+ echo "http://www.freebsd.org/cgi/query-pr.cgi?pr=$pr_id" >> $change_msg
+
if [ -n "$to_subm" ]; then mail_to="${reply_to}, ${mail_to}" ; fi
if [ -n "$x_gnats_notify" ]; then mail_to="${x_gnats_notify}, ${mail_to}" ; fi
if [ -n "$to_old" ] ; then mail_to="${mail_to}, `$PR_ADDR ${old_resp}`" ; fi
@@ -303,7 +339,7 @@
$MAIL_AGENT << __EOF__
To: $mail_to
From: $me
-Subject: Re: $full_id
+Subject: Re: $full_id: $new_synopsis
`if [ "$old_synopsis" != "$new_synopsis" ]; then
echo Old Synopsis: "$old_synopsis"
@@ -321,5 +357,7 @@
# call PR_EDIT on the new file and clean up
$PR_EDIT < $new
$PR_EDIT --unlock $pr_id
+
+done
exit 0