App-Sqitch

 view release on metacpan or  search on metacpan

inc/Module/Build/Sqitch.pm  view on Meta::CPAN

            skip_installed => 0,
            install_types  => [qw(requires recommends)],
            local_lib      => File::Spec->rel2abs($base),
            pod2man        => undef,
            features       => { map { $_ => 1 } @{ $feat } },
        );

        if ($self->dual_life) {
            # Force Install dual-life modules.
            $app->{argv} = [qw(
                File::Temp Scalar::Util Pod::Usage  Digest::SHA Pod::Escapes
                Pod::Find  Getopt::Long Time::HiRes File::Path  List::Util
                Encode     Pod::Simple  Time::Local parent      IO::File  if
                Term::ANSIColor
            )];
            die "Error installing modules: $@\n" if $app->run;
        }

        # Install required modules, but not Sqitch itself.
        $app->{argv} = ['.'];
        $app->{installdeps} = 1;
        die "Error installing modules: $@\n" if $app->run;

        # Remove unneeded build-time dependencies.
        die "Error removing build modules: $@\n"
            unless $app->remove_build_dependencies;
    }

    # Install Sqitch. Required to intall man pages.
    $self->depends_on('install');

    # Delete unneeded files.
    $self->delete_filetree(File::Spec->catdir($base, qw(lib perl5 Test)));
    $self->delete_filetree(File::Spec->catdir($base, qw(bin)));
    for my $file (@{ $self->rscan_dir($base, qr/[.](?:meta|packlist)$/) }) {
        $self->delete_filetree($file);
    }

    # Install sqitch script using FindBin.
    $self->_copy_findbin_script;

    # Delete empty directories.
    File::Find::finddepth(sub{rmdir},$base);
}

sub _copy_findbin_script {
    my $self = shift;
    # XXX Switch to lib/perl5.
    my $bin = $self->install_destination('script');
    my $script = File::Spec->catfile(qw(bin sqitch));
    my $dest = File::Spec->catfile($bin, 'sqitch');
    my $result = $self->copy_if_modified($script, $bin, 'flatten') or return;
    $self->fix_shebang_line($result) unless $self->is_vmsish;
    $self->_set_findbin($result);
    $self->make_executable($result);
}

sub _set_findbin {
    my ($self, $file) = @_;
    local $^I = '';
    local @ARGV = ($file);
    while (<>) {
        s{^BEGIN}{use FindBin;\nuse lib "\$FindBin::RealBin/../lib/perl5";\nBEGIN};
        print;
    }
}

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.770 second using v1.00-cache-2.02-grep-82fe00e-cpan-72ae3ad1e6da )