App-scriptdist

 view release on metacpan or  search on metacpan

scriptdist  view on Meta::CPAN


	$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 distribution
 view release on metacpan -  search on metacpan

( run in 1.399 second using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )