[pkg-perl-tools] 01/04: forward: fall back to sending email when pause credentials cannot be read
Florian Schlichting
fsfs at moszumanska.debian.org
Thu Dec 29 14:25:20 UTC 2016
This is an automated email from the git hooks/post-receive script.
fsfs pushed a commit to branch master
in repository pkg-perl-tools.
commit d22587bf81b2b4fd4eb94600f7f708f6d68c736e
Author: Florian Schlichting <fsfs at debian.org>
Date: Mon Nov 28 00:21:54 2016 +0100
forward: fall back to sending email when pause credentials cannot be read
---
TODO | 2 --
lib/Debian/PkgPerl/Message.pm | 7 +++++++
scripts/forward | 41 +++++++++++++++++++++--------------------
3 files changed, 28 insertions(+), 22 deletions(-)
diff --git a/TODO b/TODO
index 50e0cf6..5c0547a 100644
--- a/TODO
+++ b/TODO
@@ -17,8 +17,6 @@ TODOS:
- lintian check: ensure that arch-dep packages use M-A:same
- lintian check: check for unversioned 'perl' in Depends
- forward: set Forwarded (but not Bug) header when using --mailto
-- forward: automatically fall back to email when proper credentials are not available
- (even without --use-mail)
- upstream-repo: s/http/https/ for github/cpan URLs on creation/updates ...
- push: push tags of native packages
- autopkgtest: smoke: the dummy package should "use strict;", otherwise:
diff --git a/lib/Debian/PkgPerl/Message.pm b/lib/Debian/PkgPerl/Message.pm
index 3b292be..1ec4d68 100644
--- a/lib/Debian/PkgPerl/Message.pm
+++ b/lib/Debian/PkgPerl/Message.pm
@@ -182,10 +182,17 @@ sub send_by_mail {
my $name = $self->{name};
my $email = $self->{email};
+ my $opt_dist = $self->{dist};
my $opt_mailto = $self->{mailto};
my $patch = $self->{info}{patch};
my $opt_tracker_url = $self->{url};
+ if (!$opt_mailto) {
+ warn "Bug tracker email address not found in META.\n";
+ $opt_mailto = 'bug-' . lc($opt_dist) . '@rt.cpan.org';
+ warn "Falling back to $opt_mailto\n";
+ }
+
my $from = "$name <$email>";
my $text = $self->prepare_body();
my $subject = $self->get_subject();
diff --git a/scripts/forward b/scripts/forward
index 8d9af8e..2dce65c 100755
--- a/scripts/forward
+++ b/scripts/forward
@@ -173,14 +173,6 @@ if ( $meta and $meta->resources and $meta->resources->{bugtracker} ) {
$opt_mailto =~ s/ at /@/ if $opt_mailto;
}
-if ( $opt_use_mail and not $opt_mailto ) {
- warn "Bug tracker mail not found in META.\n";
-
- $opt_mailto = 'bug-' . lc($opt_dist) . '@rt.cpan.org';
-
- warn "Falling back to $opt_mailto\n";
-}
-
$opt_tracker ||= detect_tracker();
$opt_mode ||= 'patch'
@@ -278,8 +270,7 @@ sub detect_dist {
}
}
- close $dcopyright
- or warn "Cannot close debian/copyright from reading: $!";
+ close $dcopyright;
return;
}
@@ -289,9 +280,13 @@ my $rt_server = 'https://rt.cpan.org';
my %rt_login;
sub read_pause_credentials {
- open my $pauserc, '<',
- File::Spec->catfile( File::HomeDir->my_home, '.pause' )
- || die 'Could not open ~/.pause, supply credentials or --use-mail instead';
+ my $pausefile = File::Spec->catfile( File::HomeDir->my_home, '.pause' );
+ unless ( -r $pausefile ) {
+ warn "Could not open ~/.pause, supply credentials to use REST interface\n";
+ return 0;
+ }
+
+ open my $pauserc, '<', $pausefile;
while (<$pauserc>) {
chomp;
@@ -303,14 +298,15 @@ sub read_pause_credentials {
close $pauserc;
- die 'Err: Provide valid PAUSE credentials'
- if not $rt_login{'user'}
- or not $rt_login{'password'};
+ if (not $rt_login{'user'} or not $rt_login{'password'}) {
+ warn "Err: Provide valid PAUSE credentials\n";
+ return 0;
+ }
+
+ return 'pause credentials ok';
}
sub submit_cpan_rt {
- read_pause_credentials();
-
# prepare subject
my $subject = $message->get_subject();
@@ -434,7 +430,7 @@ sub mark_patch_as_forwarded {
}
if ( not $forwarded_set or not $bug_set ) {
- warn "Patch formatting not recognized.";
+ warn "Patch formatting not recognized.\n";
warn "Please make sure that the following headers are present:\n";
warn " Forwarded: $url\n";
warn " Bug: $url\n";
@@ -503,7 +499,12 @@ if ($opt_use_mail) {
$message->send_by_mail();
}
elsif ( $opt_tracker eq 'cpan' ) {
- submit_cpan_rt();
+ if ( read_pause_credentials() ) {
+ submit_cpan_rt();
+ } else {
+ warn "Falling back to email\n";
+ $message->send_by_mail();
+ }
}
elsif ( $opt_tracker eq 'github' ) {
submit_github();
--
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