summaryrefslogtreecommitdiff
path: root/databases/gnats4/files/extrapatch-gnats__edit-pr.sh
diff options
context:
space:
mode:
Diffstat (limited to 'databases/gnats4/files/extrapatch-gnats__edit-pr.sh')
-rw-r--r--databases/gnats4/files/extrapatch-gnats__edit-pr.sh265
1 files changed, 0 insertions, 265 deletions
diff --git a/databases/gnats4/files/extrapatch-gnats__edit-pr.sh b/databases/gnats4/files/extrapatch-gnats__edit-pr.sh
deleted file mode 100644
index f4f7c1aa8015..000000000000
--- a/databases/gnats4/files/extrapatch-gnats__edit-pr.sh
+++ /dev/null
@@ -1,265 +0,0 @@
---- gnats/edit-pr.sh.orig Sun May 26 16:32:02 2002
-+++ gnats/edit-pr.sh Sat Dec 6 02:43:44 2003
-@@ -5,6 +5,8 @@
- # Contributed by Jeffrey Osier (jeffrey@cygnus.com).
- # Majorly revised by Bob Manson (manson@juniper.net).
- # Further improvements by Dirk Bergstrom (dirk@juniper.net).
-+# Patches for the FreeBSD Project by Ceri Davies (ceri@FreeBSD.org),
-+# based on work by Paul Richards (paul@FreeBSD.org).
- #
- # This file is part of GNU GNATS.
- #
-@@ -24,9 +26,12 @@
-
- debug_print=false # or echo to get output.
- BINDIR=xBINDIRx
-+DATE=`LC_TIME=C date` # Some prstats tools rely on this format
-+GNATS_ROOT=${GNATS_ROOT:-/usr/local/share/gnats/gnats-db}; export GNATS_ROOT
- LIBEXECDIR=xLIBEXECDIRx
- GNATS_PORT=
- locked=
-+rc=0
- version=xVERSIONx
-
- usage="
-@@ -99,28 +104,23 @@
-
- *)
- 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
-
-+chng_tpl="${GNATS_ROOT}/gnats-adm/edit-pr-msg"
-+
- # set command here to always pass host and port, and directory if supplied
- QUERY_PR="$BINDIR/query-pr $GNATS_HOST $GNATS_PORT $GNATS_DB $EDIT_USER $EDIT_PASSWD"
- PR_ADDR="$QUERY_PR --responsible-address"
- PR_EDIT="$LIBEXECDIR/gnats/pr-edit $GNATS_HOST $GNATS_PORT $EDIT_USER $EDIT_PASSWD $GNATS_DB"
-
--# These traps take care of deleting all the /tmp files
--trap 'rm -f $new.old $change_msg $fixfil' 0
--# Don't delete $new on error signals
--trap 'if [ "$locked" != "" ]; then \
-- $PR_EDIT --unlock $pr_id ; \
-- locked= ; \
-- fi' 1 2 3 13 15
--
- # find a user name
- if [ "$USER" != "" ]; then
- me=$USER
-@@ -138,85 +138,45 @@
- full_me="$me"
- fi
-
-+for pr_id in $prs ; do
-+
-+epdir=`mktemp -d /tmp/epXXXXXX || exit 75`
-+chng_msg="$epdir/chng.$pr_id.$$"
- # new = temp file to use for editing
--new="/tmp/ep$$"
--newtmp="/tmp/ep$$.tp"
--change_msg="/tmp/ep$$.ch"
--fixfil="/tmp/ep$$.fx"
-+new="$epdir/$pr_id.ep$$"
-+change_msg="$epdir/ep$$.$pr_id.ch"
-+keepnew=
-+
-+# These traps take care of deleting all the /tmp files
-+trap 'rm -f $new.old $change_msg chng_msg; rmdir $epdir 2>/dev/null' 0
-+trap 'if [ "$locked" != "" ]; then \
-+ $PR_EDIT --unlock $pr_id ; \
-+ locked= ; \
-+ fi; \
-+ rm -f $new.old $change_msg chng_msg; rmdir $epdir 2>/dev/null' 1 2 3 13 15
-+
-
- # lock the pr
- $debug_print "Locking $pr_id."
--lock=`$PR_EDIT --lock=$full_me --process=$$ $pr_id 2>&1 > $new`
-+lock=`$PR_EDIT --lock=$me --process=$$ $pr_id 2>&1 > $new`
- locked=t
-
- if [ "$lock" != "" ] ; then
-+ echo "Failed to lock PR $pr_id"
- echo $lock
-- exit 0
-+ rc=1
-+ rm -r $epdir
-+ continue
- fi
-
--rm -f $fixfil
--
--# Now add any missing fields, along with a description.
--
--$QUERY_PR --list-fields | while read field
--do
-- grep -i "^>${field}:" "$new" > /dev/null 2>&1
-- if [ $? != 0 ]
-- then
-- $QUERY_PR --field-flags "$field" | grep -i readonly > /dev/null 2>&1
-- if [ $? != 0 ]
-- then
-- type="`$QUERY_PR --field-type $field`"
-- case $type in
-- [Ee][Nn][Uu][Mm])
-- values=`$QUERY_PR --valid-values $field | tr '\n' ' ' | sed 's/ *$//g; s/ / | /g;s/^/[ /;s/$/ ]/;`
-- valslen=`echo "$values" | wc -c`
-- if [ "$valslen" -gt 160 ]
-- then
-- desc="<`$QUERY_PR --field-description $field` (one line)>";
-- else
-- desc="<${values} (one line)>";
-- fi
-- dpat=`echo "$desc" | tr '][*+^$|\()&/' '............'`
-- echo "/^>${field}:/ s/${dpat}//" >> $fixfil
-- echo "/>${field}: ${desc}" >> $new;
-- ;;
-- [Mm][Uu][Ll][Tt][Ii][Tt][Ee][Xx][Tt])
-- desc=" <`$QUERY_PR --field-description $field` (multiple lines)>";
-- dpat=`echo "$desc" | tr '][*+^$|\()&/' '............'`
-- echo "s/^${dpat}//" >> $fixfil
-- echo ">${field}:" >> $new;
-- echo "$desc" >> $new;
-- ;;
-- *)
-- desc="<`$QUERY_PR --field-description $field` (one line)>"
-- dpat=`echo "$desc" | tr '][*+^$|\()&/' '............'`
-- echo "/^>${field}:/ s/${dpat}//" >> $fixfil
-- echo ">${field}: ${desc}" >> $new
-- ;;
-- esac
-- else
-- prevfld="$field";
-- fi
-- fi
--done
--
- # here's where we actually call the editor.
- cp $new $new.old
- $VISUAL $new
- if cmp -s $new.old $new ; then
- echo "edit-pr: PR not changed"
- $PR_EDIT --unlock $pr_id
-- exit 0
--fi
--
--if [ -f $fixfil ]
--then
-- sed -f $fixfil < $new > $newtmp
-- mv $newtmp $new
-- sed -f $fixfil < $new.old > $newtmp
-- mv $newtmp $new.old
-- rm -f $fixfil
-+ rm -r $epdir
-+ continue
- fi
-
- # error-check output by calling pr-edit --check; if mistakes exist,
-@@ -233,7 +193,7 @@
- echo "PR $pr_id not updated: changed file is in $new.changed"
- mv $new $new.changed
- $PR_EDIT --unlock $pr_id
-- exit 0
-+ continue 2
- ;;
- esac
- $VISUAL $new
-@@ -242,24 +202,37 @@
- fi
- done
-
--exec 3<&0
--
- #
- # Find out what fields have changed; if the changed field requires a
- # change reason, then ask about it.
- #
--$LIBEXECDIR/gnats/diff-prs $new.old $new | while read field
-+
-+changed_fields=`$LIBEXECDIR/gnats/diff-prs $new.old $new`
-+for field in $changed_fields
- do
- flags=`$QUERY_PR --field-flags $field` || echo "edit-pr: Invalid field name $field" 1>&2;
-
- if echo "$flags" | grep -i "requirechangereason" > /dev/null 2>&1
- then
-- echo ">${field}-Changed-Why:" >> $change_msg;
-- echo "Why did the $field field change? (Ctrl-D to end)";
-- cat 0<&3 >> $change_msg;
-+ $debug_print "Doing $field change."
-+ echo ">$field-Changed-Why: " >> $change_msg
-+ if [ -e $chng_msg ]; then
-+ echo "Re-use last message (y/n)?"
-+ read yesno
-+ if [ "$yesno" != "y" ]; then
-+ sed "s/%%ITEM%%/$field/" $chng_tpl > $chng_msg
-+ fi
-+ else
-+ sed "s/%%ITEM%%/$field/" $chng_tpl > $chng_msg
-+ fi
-+ $VISUAL $chng_msg
-+ sed '/^GNATS:/d' $chng_msg >> $change_msg
- fi
- done
-
-+echo "" >> $change_msg
-+echo "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=$pr_id" >> $change_msg
-+
- if [ -f $change_msg ]
- then
- cat $change_msg >> $new
-@@ -269,12 +242,12 @@
- # Submit the changed PR.
- #
- while true; do
-- if $PR_EDIT --email-addr "$full_me" $pr_id < $new
-+ if $PR_EDIT --email-addr "$me" $pr_id < $new
- then
- echo "Edit successful"
- # we need to unlock the PR
- $PR_EDIT --unlock $pr_id
-- exit 0
-+ break
- else
- echo "Problems with edit submission."
- fi
-@@ -284,9 +257,11 @@
- case "$input" in
- a*)
- echo "Cancelling edit. Changed PR is in $new."
-- # we need to ulock the PR no matter what
-+ # we need to unlock the PR no matter what
- $PR_EDIT --unlock $pr_id
-- exit 1 ;;
-+ keepnew=y
-+ rc=1
-+ break 2 ;;
- r*)
- break ;;
- *)
-@@ -296,6 +271,13 @@
- done
- done
-
--rm -f $new
-+rm -f $chng_msg $new.old $change_msg
-+if [ "$keepnew" != "y" ]; then
-+ rm -f $new
-+ rmdir $epdir
-+fi
-+keepnew=
-+
-+done # for pr_id in $prs
-
--exit 0
-+exit $rc