[pkg-perl-tools] 01/04: Extract patch info sub into a Patch class
Alex Muntada
alexm-guest at moszumanska.debian.org
Fri Dec 2 21:42:39 UTC 2016
This is an automated email from the git hooks/post-receive script.
alexm-guest pushed a commit to branch master
in repository pkg-perl-tools.
commit ca6442e3c7aad9ea53822e5c50853b728de38289
Author: Alex Muntada <alexm at alexm.org>
Date: Fri Dec 2 22:15:47 2016 +0100
Extract patch info sub into a Patch class
---
lib/Debian/PkgPerl/Patch.pm | 96 +++++++++++++++++++++++++++++++++++++++++++++
scripts/forward | 40 ++-----------------
2 files changed, 99 insertions(+), 37 deletions(-)
diff --git a/lib/Debian/PkgPerl/Patch.pm b/lib/Debian/PkgPerl/Patch.pm
new file mode 100644
index 0000000..64551f1
--- /dev/null
+++ b/lib/Debian/PkgPerl/Patch.pm
@@ -0,0 +1,96 @@
+package Debian::PkgPerl::Patch;
+
+use strict;
+use warnings;
+
+use autodie;
+use Carp;
+use File::Spec;
+
+=head1 NAME
+
+Debian::PkgPerl::Patch - Retrieves patch information to be forwarded.
+
+=head1 SYNOPSIS
+
+ use Debian::PkgPerl::Patch;
+ my $msg = Debian::PkgPerl::Patch->new();
+ my %info = $msg->retrieve_patch_info();
+
+=head1 DESCRIPTION
+
+Helper class that retrieves information related to the patch being
+forwarded upstream.
+
+=cut
+
+sub new {
+ my $class = shift;
+ my %params = @_;
+
+ return bless \%params, $class;
+}
+
+sub retrieve_patch_info {
+ open( my $in, "<", $patch );
+ my $line_no = 1;
+ while ( $line_no <= 10 ) {
+ my $line = <$in>;
+ chomp($line);
+
+ last if $line =~ /^(?:diff|index|---|\+\+\+)/s;
+
+ if ( $line !~ /^Forwarded: not yet/i
+ and $line !~ /^Forwarded: no$/i
+ and $line =~ /^(?:Forwarded|Bug): (\S+)/i )
+ {
+ if ($opt_force) {
+ warn "Patch already forwarded to $1\n";
+ warn "Continuing anyway because of --force.\n";
+ }
+ else {
+ die "Patch already forwarded to $1\n";
+ }
+ }
+
+ $patch_info{Subject} = $1
+ if $line =~ /^(?:Subject|Description):\s+(.+)/;
+ $patch_info{From} = $1
+ if $line =~ /^(?:From|Author):\s+(.+)/;
+ $line_no++;
+ }
+
+ unless ( $patch_info{Subject} ) {
+ # TODO: Use basename($patch) instead?
+ # default subject is the patch name
+ my $fn = ( File::Spec->splitpath($patch) )[-1];
+ $fn =~ s/\.(?:patch|diff)$//; # strip extension
+ $fn =~ s/^\d+[-_]?//; # strip leading number
+ $fn =~ s/(\_|\-)/ /g; # spaces make reading easier
+ $patch_info{Subject} = $fn;
+ }
+}
+
+=head1 LICENSE AND COPYRIGHT
+
+=over
+
+=item Copyright 2016 Alex Muntada.
+
+=item Copyright 2014 Salvatore Bonaccorso.
+
+=item Copyright 2014 Damyan Ivanov.
+
+=item Copyright 2011 Alessandro Ghedini.
+
+=back
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of either: the GNU General Public License as published
+by the Free Software Foundation; or the Artistic License.
+
+See http://dev.perl.org/licenses/ for more information.
+
+=cut
+
+1;
diff --git a/scripts/forward b/scripts/forward
index a0fbdb4..417422b 100755
--- a/scripts/forward
+++ b/scripts/forward
@@ -17,6 +17,7 @@ use Proc::InvokeEditor;
use MIME::Lite;
use YAML::XS qw(LoadFile);
use Debian::PkgPerl::Bug;
+use Debian::PkgPerl::Patch;
use Debian::PkgPerl::GitHub;
use warnings;
@@ -206,43 +207,8 @@ else {
}
if ($patch) {
- open( my $in, "<", $patch );
- my $line_no = 1;
- while ( $line_no <= 10 ) {
- my $line = <$in>;
- chomp($line);
-
- last if $line =~ /^(?:diff|index|---|\+\+\+)/s;
-
- if ( $line !~ /^Forwarded: not yet/i
- and $line !~ /^Forwarded: no$/i
- and $line =~ /^(?:Forwarded|Bug): (\S+)/i )
- {
- if ($opt_force) {
- warn "Patch already forwarded to $1\n";
- warn "Continuing anyway because of --force.\n";
- }
- else {
- die "Patch already forwarded to $1\n";
- }
- }
-
- $patch_info{Subject} = $1
- if $line =~ /^(?:Subject|Description):\s+(.+)/;
- $patch_info{From} = $1
- if $line =~ /^(?:From|Author):\s+(.+)/;
- $line_no++;
- }
-
- unless ( $patch_info{Subject} ) {
- # TODO: Use basename($patch) instead?
- # default subject is the patch name
- my $fn = ( File::Spec->splitpath($patch) )[-1];
- $fn =~ s/\.(?:patch|diff)$//; # strip extension
- $fn =~ s/^\d+[-_]?//; # strip leading number
- $fn =~ s/(\_|\-)/ /g; # spaces make reading easier
- $patch_info{Subject} = $fn;
- }
+ my $patch_info = Debian::PkgPerl::Patch->new();
+ %patch_info = $patch_info->retrieve_patch_info();
}
my $bug_info = Debian::PkgPerl::Bug->new(
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/pkg-perl-tools.git
More information about the Pkg-perl-cvs-commits
mailing list