This is an automated email from the git hooks/post-receive script. abe pushed a commit to annotated tag 0.2.2-source in repository libdist-zilla-role-bootstrap-perl.
commit 3783dec3cb33d8a4754daa5f9fafd90a1052d8ba Author: Kent Fredric <kentfred...@gmail.com> Date: Wed Oct 30 20:30:48 2013 +1300 Refactor shared code between bits into a library --- before_script.pl | 34 +++------------ install_deps.pl | 91 ++++++--------------------------------- lib/tools.pm | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++ report_fail_ctx.pl | 37 ++-------------- script.pl | 35 ++------------- sterilize_env.pl | 47 ++------------------ sync_tree.pl | 28 ++---------- 7 files changed, 158 insertions(+), 237 deletions(-) diff --git a/before_script.pl b/before_script.pl index cc128c7..f852b51 100644 --- a/before_script.pl +++ b/before_script.pl @@ -2,36 +2,15 @@ use strict; use warnings; -use utf8; -sub diag { print STDERR @_; print STDERR "\n" } -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_nonfatal { - my ( $command, @params ) = @_; - diag("running $command @params"); - my $exit = system( $command, @params ); - if ( $exit != 0 ) { - my $low = $exit & 0b11111111; - my $high = $exit >> 8; - warn "$command failed: $? $! and exit = $high , flags = $low"; - if ( $high != 0 ) { - return $high; - } - else { - return 1; - } - } - return 0; -} +use FindBin; +use lib "$FindBin::Bin/lib"; +use tools; -sub safe_exec { - my ( $command, @params ) = @_; - my $result = safe_exec_nonfatal( $command, @params ); - exit $result if $result != 0; +if ( not env_exists('STERILIZE_ENV') ) { + diag("\e[31mSTERILIZE_ENV \e[32munset\e[0m, skipping"); + exit 0; } - if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) { diag("before_script skipped, TRAVIS_BRANCH=master"); exit 0; @@ -47,5 +26,6 @@ else { safe_exec("make"); exit 0; } + } diff --git a/install_deps.pl b/install_deps.pl index 3ac11b9..83b4e61 100644 --- a/install_deps.pl +++ b/install_deps.pl @@ -2,70 +2,10 @@ use strict; use warnings; use utf8; -use Cwd qw(cwd); -sub diag { print STDERR @_; print STDERR "\n" } -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_nonfatal { - my ( $command, @params ) = @_; - diag("running $command @params"); - my $exit = system( $command, @params ); - if ( $exit != 0 ) { - my $low = $exit & 0b11111111; - my $high = $exit >> 8; - warn "$command failed: $? $! and exit = $high , flags = $low"; - if ( $high != 0 ) { - return $high; - } - else { - 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; -} - -my $got_fixes; - -sub get_fixes { - return if $got_fixes; - my $cwd = cwd(); - chdir '/tmp'; - safe_exec( 'git', 'clone', 'https://github.com/kentfredric/cpan-fixes.git' ); - chdir $cwd; - $got_fixes = 1; -} - -sub cpanm_fix { - my (@params) = @_; - get_fixes(); - my $cwd = cwd(); - chdir '/tmp/cpan-fixes'; - cpanm(@params); - chdir $cwd; -} +use FindBin; +use lib "$FindBin::Bin/lib"; +use tools; if ( not env_exists('TRAVIS') ) { diag('Is not running under travis!'); @@ -89,20 +29,17 @@ if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) { safe_exec( 'git', 'config', '--global', 'user.email', 'kentfredric+travi...@gmail.com' ); safe_exec( 'git', 'config', '--global', 'user.name', 'Travis CI ( On behalf of Kent Fredric )' ); - require Capture::Tiny; - my $stdout = Capture::Tiny::capture_stdout( - sub { - safe_exec( 'dzil', 'authordeps', '--missing' ); - } - ); + my $stdout = capture_stdout { + safe_exec( 'dzil', 'authordeps', '--missing' ); + }; + if ( $stdout !~ /^\s*$/msx ) { cpanm( @params, split /\n/, $stdout ); } - $stdout = Capture::Tiny::capture_stdout( - sub { - safe_exec( 'dzil', 'listdeps', '--missing' ); - } - ); + $stdout = capture_stdout { + safe_exec( 'dzil', 'listdeps', '--missing' ); + }; + if ( $stdout !~ /^\s*$/msx ) { cpanm( @params, split /\n/, $stdout ); } @@ -110,10 +47,8 @@ if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) { else { 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' ); + my $prereqs = parse_meta_json()->effective_prereqs; + my $reqs = $prereqs->requirements_for( 'develop', 'requires' ); cpanm( @params, map { $_ . '~' . $reqs->requirements_for_module($_) } $reqs->required_modules ); diff --git a/lib/tools.pm b/lib/tools.pm new file mode 100644 index 0000000..12a57d0 --- /dev/null +++ b/lib/tools.pm @@ -0,0 +1,123 @@ +use strict; +use warnings; + +package tools; + +use Cwd qw(cwd); + +sub diag { + my $handle = \*STDERR; + for (@_) { + print {$handle} $_; + } + print {$handle} "\n"; +} + +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_nonfatal { + my ( $command, @params ) = @_; + diag("running $command @params"); + my $exit = system( $command, @params ); + if ( $exit != 0 ) { + my $low = $exit & 0b11111111; + my $high = $exit >> 8; + warn "$command failed: $? $! and exit = $high , flags = $low"; + if ( $high != 0 ) { + return $high; + } + else { + 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; +} + +sub git { + my (@params) = @_; + safe_exec( 'git', @params ); +} + +my $got_fixes; + +sub get_fixes { + return if $got_fixes; + my $cwd = cwd(); + chdir '/tmp'; + safe_exec( 'git', 'clone', 'https://github.com/kentfredric/cpan-fixes.git' ); + chdir $cwd; + $got_fixes = 1; +} + +sub cpanm_fix { + my (@params) = @_; + get_fixes(); + my $cwd = cwd(); + chdir '/tmp/cpan-fixes'; + cpanm(@params); + chdir $cwd; +} + +sub parse_meta_json { + $_[0] ||= 'META.json'; + require CPAN::Meta; + return CPAN::Meta->load_file( $_[0] ); +} + +sub capture_stdout(&) { + require Capture::Tiny; + goto &Capture::Tiny::capture_stdout; +} + +sub import { + my ( $self, @args ) = @_; + + my $caller = [caller]->[0]; + + my $caller_stash = do { + no strict 'refs'; + *{ $caller . '::' }; + }; + + $caller_stash->{diag} = *diag; + $caller_stash->{env_exists} = *env_exists; + $caller_stash->{env_true} = *env_true; + $caller_stash->{env_is} = *env_is; + $caller_stash->{safe_exec_nonfatal} = *safe_exec_nonfatal; + $caller_stash->{safe_exec} = *safe_exec; + $caller_stash->{cpanm} = *cpanm; + $caller_stash->{git} = *git; + $caller_stash->{get_fixes} = *get_fixes; + $caller_stash->{cpanm_fix} = *cpanm_fix; + $caller_stash->{parse_meta_json} = *parse_meta_json; + $caller_stash->{capture_stdout} = *capture_stdout; +} + +1; diff --git a/report_fail_ctx.pl b/report_fail_ctx.pl index b8a8c2e..29b8e21 100644 --- a/report_fail_ctx.pl +++ b/report_fail_ctx.pl @@ -4,39 +4,10 @@ use strict; use warnings; use utf8; -sub diag { print STDERR @_; print STDERR "\n" } -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] ) } +use FindBin; +use lib "$FindBin::Bin/lib"; +use tools; -sub safe_exec_nonfatal { - my ( $command, @params ) = @_; - diag("running $command @params"); - my $exit = system( $command, @params ); - if ( $exit != 0 ) { - my $low = $exit & 0b11111111; - my $high = $exit >> 8; - warn "$command failed: $? $! and exit = $high , flags = $low"; - if ( $high != 0 ) { - return $high; - } - else { - 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; -} - -diag("Last 1000 lines of cpanm build log"); +diag("\e[31mLast 1000 lines of cpanm build log\e[0m"); safe_exec( 'tail', '-n', '1000', $ENV{HOME} . '/.cpanm/build.log' ); diff --git a/script.pl b/script.pl index b4dde39..7a9d3e2 100644 --- a/script.pl +++ b/script.pl @@ -4,38 +4,9 @@ use strict; use warnings; use utf8; -sub diag { print STDERR @_; print STDERR "\n" } -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_nonfatal { - my ( $command, @params ) = @_; - diag("running $command @params"); - my $exit = system( $command, @params ); - if ( $exit != 0 ) { - my $low = $exit & 0b11111111; - my $high = $exit >> 8; - warn "$command failed: $? $! and exit = $high , flags = $low"; - if ( $high != 0 ) { - return $high; - } - else { - 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; -} +use FindBin; +use lib "$FindBin::Bin/lib"; +use tools; if ( not env_exists('TRAVIS') ) { diag('Is not running under travis!'); diff --git a/sterilize_env.pl b/sterilize_env.pl index 9e250c0..c000827 100644 --- a/sterilize_env.pl +++ b/sterilize_env.pl @@ -1,50 +1,10 @@ #!/usr/bin/env perl use strict; use warnings; -use utf8; -sub diag { print STDERR @_; print STDERR "\n" } -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_nonfatal { - my ( $command, @params ) = @_; - diag("running $command @params"); - my $exit = system( $command, @params ); - if ( $exit != 0 ) { - my $low = $exit & 0b11111111; - my $high = $exit >> 8; - warn "$command failed: $? $! and exit = $high , flags = $low"; - if ( $high != 0 ) { - return $high; - } - else { - 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; -} +use FindBin; +use lib "$FindBin::Bin/lib"; +use tools; sub no_sterile_warning { if ( env_is( 'TRAVIS_PERL_VERSION', '5.8' ) or env_is( 'TRAVIS_PERL_VERSION', '5.10' ) ) { @@ -109,6 +69,7 @@ for my $perl_ver ( keys %{$extra_sterile} ) { for my $libdir (@all_libs) { for my $removal ( @{ $fixups->{remove} } ) { my $path = $libdir . '/' . $removal; + diag("\e[32m ? $path \e[0m"); if ( -e -f $path ) { unlink $path; diag("Removed $path"); diff --git a/sync_tree.pl b/sync_tree.pl index f7ceb58..a9d60fa 100755 --- a/sync_tree.pl +++ b/sync_tree.pl @@ -1,36 +1,16 @@ #!/usr/bin/env perl use strict; use warnings; -use utf8; + +use FindBin; +use lib "$FindBin::Bin/lib"; +use tools; use Path::FindDev qw( find_dev ); my $root = find_dev('./'); chdir "$root"; -sub diag { - print STDERR @_; - print STDERR "\n"; -} - -sub safe_exec { - my ( $command, @params ) = @_; - diag("running $command @params"); - my $exit = system( $command, @params ); - if ( $exit != 0 ) { - my $low = $exit & 0b11111111; - my $high = $exit >> 8; - warn "$command failed: $? $! and exit = $high , flags = $low"; - if ( $high != 0 ) { - exit $high; - } - else { - exit 1; - } - } - return 1; -} - sub git_subtree { safe_exec( 'git', 'subtree', @_ ); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdist-zilla-role-bootstrap-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits