Autoconf-Template
view release on metacpan or search on metacpan
bin/autoconf-template-perl view on Meta::CPAN
my (@files) = @_;
return $EMPTY
if !@files;
my $list = join " \\\n ", @files;
return "\\\n " . $list;
}
########################################################################
sub find_resources {
########################################################################
my ($options) = @_;
my $root = $options->{root};
my @resources;
find(
sub {
return if /^Makefile/xsm || -d $File::Find::name;
my $file = $File::Find::name;
DEBUG Dumper( [ file => $file ] );
$file =~ s/$root\/resources\///xsm;
DEBUG Dumper( [ file => $file ] );
push @resources, $file;
},
"$root/resources"
);
return \@resources;
}
########################################################################
sub init_parameters {
########################################################################
my ($options) = @_;
my @now = localtime;
$now[5] += 1900;
$now[4] += 1;
my $root = $options->{root};
my %timestamp = timestamp();
$options->{date} = $timestamp{date};
$options->{timestamp} = $timestamp{timestamp};
# Fri Feb 10 14:16:12 2023
$options->{version} = '2.1.0'; ## no critic (RequireInterpolation)
$options->{generator} = basename $PROGRAM_NAME;
# convenience routines for TT
# creates a list that looks like this:
# FOO = \
# ITEM \
# ITEM \
# ITEM
$options->{makefile_am_list} = \&makefile_am_list;
$options->{makefile_am_flatten_list} = \&makefile_am_flatten_list;
if ( $options->{refresh} ) {
# main() prepped 'destdir', 'project' for refresh option from
# abs_top_srcdir in Makefile, so we should be certain that root
# for refresh is correct...
my $resources = find_resources($options);
$options->{'strip-dir'} = sprintf '%s/%s', $options->{root}, 'resources';
create_target_file_list( $options, [ resources => $resources ] );
# refresh the list of files for 'built' assets look for .in files
# in each directory, presumably someone dropped a new .in file in
# one of these and wants to refresh the Makefile.am
my %html_files = (
html => [ 'htdocs', ['html'] ],
javascript => [ 'javascript', ['js'] ],
css => [ 'css', ['css'] ],
image => [ 'image', [qw(png gif jpeg jpg)] ],
);
foreach ( keys %html_files ) {
my $file_list = $_ . '_files';
$options->{$file_list} = [];
my ( $subdir, $ext_list ) = @{ $html_files{$_} };
foreach my $file_type ( @{$ext_list} ) {
my @files = find_files_of_type(
path => "$root/src/main/html/$subdir",
type => $file_type,
);
push @{ $options->{$file_list} }, map { basename $_ } @files;
}
}
$options->{bash_scripts}
= [ find_files( "$root/src/main/bash/bin", 'sh', $TRUE ) ];
$options->{perl_scripts}
= [ find_files( "$root/src/main/perl/bin", 'pl', $TRUE ) ];
$options->{cgi_scripts}
= [ find_files( "$root/src/main/perl/cgi-bin", 'pl', $TRUE ) ];
$options->{perl_modules}
= [ find_files( "$root/src/main/perl/lib", 'pm', $TRUE ) ];
TRACE Dumper( [ perl_modules => $options->{perl_modules} ] );
( run in 1.833 second using v1.01-cache-2.11-cpan-39bf76dae61 )