aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormharo <mharo@FreeBSD.org>2000-05-02 03:53:54 +0800
committermharo <mharo@FreeBSD.org>2000-05-02 03:53:54 +0800
commitbf18bec4c5c302d3eee45f39f8a73ea89b5f7c40 (patch)
tree4b7ed70b1242a43648a513b67b802dc91cc5762e
parent34f7bcc941c68c004507540cb6ac062e919055b9 (diff)
downloadfreebsd-ports-gnome-bf18bec4c5c302d3eee45f39f8a73ea89b5f7c40.tar.gz
freebsd-ports-gnome-bf18bec4c5c302d3eee45f39f8a73ea89b5f7c40.tar.zst
freebsd-ports-gnome-bf18bec4c5c302d3eee45f39f8a73ea89b5f7c40.zip
3 little scripts I use when dealing with port update PRs.
getpr - downloads a problem report from GNATS and attempts to extract the patch, shar, uuencoded file from it. this probably needs to be checked for potential security problems. prpatch - just does `patch $1 < pr-patch' (pr-patch is created by getpr) prdone - checks in the port, attempting to fill out the commit message using information from the problem report and then takes you into edit-pr so you don't forget to close the PR.
-rwxr-xr-xTools/scripts/getpr81
-rwxr-xr-xTools/scripts/prdone56
-rwxr-xr-xTools/scripts/prpatch10
3 files changed, 147 insertions, 0 deletions
diff --git a/Tools/scripts/getpr b/Tools/scripts/getpr
new file mode 100755
index 000000000000..e7b703bc607f
--- /dev/null
+++ b/Tools/scripts/getpr
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+#
+# MAINTAINER= mharo@FreeBSD.org
+#
+# $FreeBSD$
+#
+
+use strict;
+
+my $pr = shift;
+
+if ($pr eq "") {
+ print STDERR "getpr prnum\n";
+ exit 1
+}
+
+# get the PR off of freefall
+
+open(D, "> $pr") or die "$pr: $!";
+open(PATCH, "> pr-patch") or die "pr-patch: $!";
+open(PR, " ssh freefall query-pr -F $pr | ") or die $!;
+
+my $fix = "";
+my $infix = 0;
+
+while(<PR>) {
+ print D;
+
+ if (m/^>Release-Note:/) {
+ $infix = 0;
+ }
+ if ($infix == 1) {
+ print PATCH;
+ }
+ if (m/^>Fix:/) {
+ $infix = 1;
+ }
+}
+close(D);
+close(PR);
+close(PATCH);
+
+# decode the submission attempting to find a file attachment by extension
+# .tar.gz, .shar or just .gz, if not found, display what we think of as
+# the file submission (probably just a patch)
+
+open(PATCH, "pr-patch");
+while(<PATCH>) {
+ if (m/^# This is a shell archive. Save it in a file, remove anything before/) {
+ &shar;
+ exit;
+ }
+ if (m/^begin (\d+)? (.*)/) {
+ &uudecode($2);
+ close(PATCH);
+ exit;
+ }
+}
+
+close(PATCH);
+system("more pr-patch");
+
+exit;
+
+sub uudecode {
+ my ($fname) = @_;
+
+ $fname =~ s/\s+$//g;
+ print "$fname\n";
+
+ print `uudecode pr-patch`;
+ if (($fname =~ m/.tar.gz$/) || ($fname =~ m/.tgz$/)) {
+ print "you may extract this tarball by typing tar xvzf $fname\n";
+ } elsif ($fname =~ m/.gz$/) {
+ print `gunzip $fname`;
+ }
+}
+
+sub shar {
+ print "you may extract this shar archive by typing sh pr-patch\n";
+}
diff --git a/Tools/scripts/prdone b/Tools/scripts/prdone
new file mode 100755
index 000000000000..f2f03336537a
--- /dev/null
+++ b/Tools/scripts/prdone
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# MAINTAINER= mharo@FreeBSD.org
+#
+# $FreeBSD$
+#
+
+# $Id: prdone,v 1.4 2000/04/22 21:48:53 mharo Exp $
+
+if [ $# -lt 1 ] ; then
+ echo "prdone prnumber [ci]"
+ exit 1
+fi
+
+file=$1; shift
+action=$1;
+
+if [ "X$file" = "Xci" ] ; then
+ echo "hey, dumbass, the PR number is not 'ci'"
+ exit 1
+fi
+
+rm -f pr-patch
+rm -f MAINTAINER_WAIT
+
+if [ "X$action" = "Xci" ] ; then
+ echo "preparing commit"
+cvsmsg=cvsmsg
+ cp /home/ncvs/CVSROOT/rcstemplate CVS/Template
+
+ from=`grep From: $file | sed -e 's/From: //' -e 's/\@/\\\@/g'`
+ name=`grep Originator: $file | sed -e 's/>Originator: //'`
+ synopsis=`grep Synopsis: $file | sed -e 's/>Synopsis: //'`
+ cp /home/ncvs/CVSROOT/rcstemplate $cvsmsg
+ chmod +w $cvsmsg
+ /usr/bin/perl -pi -e "s,^PR:,PR:\t\t$file," $cvsmsg
+ /usr/bin/perl -pi -e "s,^Submitted by:,Submitted by:\t$name <$from>," $cvsmsg
+ echo "$synopsis" > $cvsmsg.tmp
+ cat $cvsmsg >> $cvsmsg.tmp
+ mv $cvsmsg.tmp $cvsmsg
+ vi $cvsmsg
+
+ cvs -d mharo@freefall.freebsd.org:/home/ncvs ci -F $cvsmsg
+ rm -f $cvsmsg
+ echo "done"
+else
+ echo "PR: $file" > MAINTAINER_WAIT
+ echo ""
+ echo "Don't forget to email" `grep MAINTAINER Makefile`
+ echo ""
+fi
+
+# remove pr number after we commit as I always forget to track PR number
+rm -f $file
+
+ssh freefall.freebsd.org -t edit-pr $file
diff --git a/Tools/scripts/prpatch b/Tools/scripts/prpatch
new file mode 100755
index 000000000000..1b575f7adca4
--- /dev/null
+++ b/Tools/scripts/prpatch
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+# MAINTAINER= mharo@FreeBSD.org
+#
+# $FreeBSD$
+#
+
+patch $@ < pr-patch
+find . -name '*.orig' -print -delete
+find . -name '*.rej' -print