use Module::Build; use Config; use strict; my $class = Module::Build->subclass( class => 'My::Builder', code => q{ sub ACTION_build { use File::Spec::Functions; my $self = shift; $self->SUPER::ACTION_build(@_); # Copy the test scripts and then set the shebang line and make # sure that they're executable. my @scripts; my $to_dir = $self->localize_file_path("t/scripts"); for my $base (qw(testsvnlook testsendmail)) { my $script = "$to_dir/$base"; push @scripts, $self->localize_file_path($script); my $orig = $self->localize_file_path("t/bin/$base"); $self->copy_if_modified( from => $orig, to_dir => $to_dir, flatten => 1, ); } $self->fix_shebang_line(@scripts); $self->make_executable(@scripts); $self->add_to_cleanup($to_dir); } }, ); my $build = $class->new( module_name => 'SVN::Notify', license => 'perl', create_makefile_pl => 'passthrough', add_to_cleanup => ['t/data/output.txt'], script_files => ['bin/svnnotify'], requires => { 'Getopt::Long' => '2.34' }, build_requires => { 'Test::Simple' => '0.17', 'Module::Build' => '0.26', 'File::Spec' => 0, }, recommends => { 'Pod::Usage' => 0, 'HTML::Entities' => 0, 'Net::SMTP' => 0, 'Net::SMTP_auth' => 0, 'Test::Pod' => 1.20, 'Test::Pod::Coverage' => 1.06, 'File::Spec' => 0, }, ); $build->create_build_script;