[libmoosex-has-sugar-perl] 33/120: Attempt to report cpanm failures when they occur
Intrigeri
intrigeri at moszumanska.debian.org
Wed Aug 27 21:35:08 UTC 2014
This is an automated email from the git hooks/post-receive script.
intrigeri pushed a commit to annotated tag 0.05070422-source
in repository libmoosex-has-sugar-perl.
commit b902de6ba4549d8a7b0d232f2ecab58129190afc
Author: Kent Fredric <kentfredric at gmail.com>
Date: Thu Oct 24 06:35:46 2013 +1300
Attempt to report cpanm failures when they occur
---
install_deps.pl | 42 +++++++++++++++++++++++++++++++-----------
1 file changed, 31 insertions(+), 11 deletions(-)
diff --git a/install_deps.pl b/install_deps.pl
index 9e5a490..9d6c091 100644
--- a/install_deps.pl
+++ b/install_deps.pl
@@ -8,7 +8,7 @@ sub env_exists { return exists $ENV{ $_[0] } }
sub env_true { return env_exists( $_[0] ) and $ENV{ $_[0] } }
sub env_is { return env_exists( $_[0] ) and $ENV{ $_[0] } eq $_[1] }
-sub safe_exec {
+sub safe_exec_nonfatal {
my ( $command, @params ) = @_;
diag("running $command @params");
my $exit = system( $command, @params );
@@ -17,11 +17,31 @@ sub safe_exec {
my $high = $exit >> 8;
warn "$command failed: $? $! and exit = $high , flags = $low";
if ( $high != 0 ) {
- exit $high;
+ return $high;
}
else {
- exit 1;
+ return 1;
}
+
+ }
+ return 0;
+}
+
+sub safe_exec {
+ my ( $command, @params ) = @_;
+ my $exit_code = safe_exec_nonfatal( $command, @params );
+ if ( $exit_code != 0 ) {
+ exit $exit_code;
+ }
+ return 1;
+}
+
+sub cpanm {
+ my (@params) = @_;
+ my $exit_code = safe_exec_nonfatal( 'cpanm', @params );
+ if ( $exit_code != 0 ) {
+ safe_exec( 'tail', '-n', '200', '/home/travis/.cpanm/build.log' );
+ exit $exit_code;
}
return 1;
}
@@ -36,8 +56,8 @@ if ( env_true('DEVELOPER_DEPS') ) {
push @params, '--dev';
}
if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) {
- safe_exec( 'cpanm', @params, 'Dist::Zilla', 'Capture::Tiny', 'Pod::Weaver' );
- safe_exec( 'cpanm', @params, '--dev', 'Dist::Zilla', 'Pod::Weaver' );
+ cpanm( @params, 'Dist::Zilla', 'Capture::Tiny', 'Pod::Weaver' );
+ cpanm( @params, '--dev', 'Dist::Zilla', 'Pod::Weaver' );
require Capture::Tiny;
my $stdout = Capture::Tiny::capture_stdout(
@@ -46,7 +66,7 @@ if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) {
}
);
if ( $stdout !~ /^\s*$/msx ) {
- safe_exec( 'cpanm', @params, split /\n/, $stdout );
+ cpanm( @params, split /\n/, $stdout );
}
$stdout = Capture::Tiny::capture_stdout(
sub {
@@ -54,19 +74,19 @@ if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) {
}
);
if ( $stdout !~ /^\s*$/msx ) {
- safe_exec( 'cpanm', @params, split /\n/, $stdout );
+ cpanm( @params, split /\n/, $stdout );
}
}
else {
- safe_exec( 'cpanm', @params, '--installdeps', '.' );
+ cpanm( @params, '--installdeps', '.' );
if ( env_true('AUTHOR_TESTING') or env_true('RELEASE_TESTING') ) {
require CPAN::Meta;
my $meta = CPAN::Meta->load_file('META.json');
my $prereqs = $meta->effective_prereqs;
my $reqs = $prereqs->requirements_for( 'develop', 'requires' );
- for my $module ( sort $reqs->required_modules ) {
- safe_exec( 'cpanm', @params, $module . '~' . $reqs->requirements_for_module($module) );
- }
+
+ cpanm( @params, map { $_ . '~' . $reqs->requirements_for_module($_) } $reqs->required_modules );
+
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmoosex-has-sugar-perl.git
More information about the Pkg-perl-cvs-commits
mailing list