App-scriptdist
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
$show_message->( "\tFound modules\n\t\t", join "\n\t\t",
map { $_->module . " => " . ( $_->version // '0' ) } @$modules
);
$Defaults{modules} = $modules;
}
else {
$show_message->( "Install $class to detect prerequisites\n" );
}
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Extract declared Perl version
{
my $class = 'Module::Extract::DeclaredMinimumPerl';
if( eval "use $class; 1" ) {
my $extor = $class->new;
my $version = $extor->get_minimum_declared_perl( $Defaults{path} );
$show_message->( "\tFound minimum version $version\n" );
$Defaults{minimum_perl_version} = $version;
}
else {
$show_message->( "Install $class to detect minimum versions\n" );
}
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Make directories
die <<"HERE" if -d $Defaults{directory};
Directory $Defaults{directory} already exists! Either delete it or
move it out of the way, then rerun this program.
HERE
foreach my $dir (
map { $_, catfile( $_, "t" ) } $Defaults{directory} ) {
$show_message->( "Making directory $dir...\n" );
mkdir $dir, 0755 or die "Could not make [$dir]: $!\n";
}
# Copy local template files
$show_message->( "RC directory is $Defaults{rc_dir}\n" );
$show_message->( "cwd is ", getcwd, "\n" );
if( -d $Defaults{rc_dir} ) {
$show_message->( "Looking for local templates...\n" );
foreach my $input ( find_files( $Defaults{rc_dir} ) ) {
$show_message->( "rc_dir is $Defaults{rc_dir}\n" );
$show_message->( "dir_sep is $Defaults{dir_sep}\n" );
$show_message->( "Input is $input\n" );
my( $path ) = $input =~ m/\Q$Defaults{rc_dir}$Defaults{dir_sep}\E(.*)/g;
$show_message->( "Path is $path\n" );
my @path = File::Spec->splitdir( $path );
my $file = pop @path;
$show_message->( "File is $file\n" );
if( @path ) {
local @ARGV = catfile( $Defaults{directory}, @path );
ExtUtils::Command::mkpath unless -d $ARGV[0];
}
my $output = catfile( $Defaults{directory}, $path );
$show_message->( "Output is $file\n" );
copy( $input, $output, \%Defaults );
}
}
FILE: foreach my $filename ( sort keys %{ content( \%Defaults ) } ) {
my @path = split m|\Q$Defaults{dir_sep}|, $filename;
my $file = catfile( $Defaults{directory}, @path );
$show_message->( "Checking for file [$filename]... " );
if( -e $file ) { $show_message->( "already exists\n" ); next FILE }
$show_message->( "Adding file [$filename]...\n" );
open my($fh), '>:utf8', $file or do {
warn "Could not write to [$file]: $!\n";
next FILE;
};
no warnings 'uninitialized';
print $fh $Content{$filename};
}
# Add the script itself
{
$show_message->( "Adding [$Defaults{script}]...\n" );
my $dist_script = catfile( $Defaults{directory}, $Defaults{script} );
if( -e $Defaults{path} ) {
$show_message->( "Copying script...\n" );
copy( $Defaults{path}, $dist_script );
}
else {
$show_message->( "Using script template...\n" );
open my $fh, '>:utf8', $dist_script;
print { $fh } script_template( $Defaults{script} );
}
}
# Create the MANIFEST file
$show_message->( "Creating MANIFEST...\n" );
chdir $Defaults{directory} or die "Could not change to $Defaults{directory}: $!\n";
$ExtUtils::Manifest::Verbose = 0;
ExtUtils::Manifest::mkmanifest;
gitify();
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.399 second using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )