#!/usr/bin/perl # this is just a first crack and it uses File::Fu because I'm lazy. =head1 using This installs from a fresh Module::Build to your inc/inc_Module-Build directory. Use it from within your dist: perl /path/to/Module-Build/scripts/bundle.pl You still need to manually add the following to your Build.PL use lib 'inc'; use latest 'Module::Build'; You also need to regen your manifest. perl Build.PL ./Build distmeta; >MANIFEST; ./Build manifest; svn diff MANIFEST =cut use warnings; use strict; use File::Fu; use File::Copy (); my $inc_dir = shift(@ARGV); $inc_dir = File::Fu->dir($inc_dir || 'inc/inc_Module-Build'); $inc_dir->create unless($inc_dir->e); $inc_dir = $inc_dir->absolutely; my $mb_dir = File::Fu->program_dir->dirname; $mb_dir->chdir_for(sub { my $temp = File::Fu->temp_dir('mb_bundle'); local @INC = @INC; unshift(@INC, 'lib', 'inc'); require Module::Build; my $builder = Module::Build->new_from_context; $builder->dispatch(install => install_base => $temp, install_path => {lib => $inc_dir}, ); }); my $latest = $mb_dir/'inc'+'latest.pm'; File::Copy::copy($latest, 'inc'); # vim:ts=2:sw=2:et:sta