diff options
author | mharo <mharo@FreeBSD.org> | 2000-05-02 03:53:54 +0800 |
---|---|---|
committer | mharo <mharo@FreeBSD.org> | 2000-05-02 03:53:54 +0800 |
commit | bf18bec4c5c302d3eee45f39f8a73ea89b5f7c40 (patch) | |
tree | 4b7ed70b1242a43648a513b67b802dc91cc5762e | |
parent | 34f7bcc941c68c004507540cb6ac062e919055b9 (diff) | |
download | freebsd-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-x | Tools/scripts/getpr | 81 | ||||
-rwxr-xr-x | Tools/scripts/prdone | 56 | ||||
-rwxr-xr-x | Tools/scripts/prpatch | 10 |
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 |