How to properly install Data Files
Shlomi Fish <[email protected]> Mon, 18 Oct 2010 13:15:44 +0200
| Newsgroups | gmane.comp.lang.perl.modules.module-build |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
After I released a new version of XML-Grammar-Fortune-Synd, I got a lot of
error reports from the CPAN testers:
http://www.cpantesters.org/distro/X/XML-Grammar-Fortune-Synd.html
The problem is that the data file installed by XML-Grammar-Fortune (its
dependency) are not available for testing:
http://search.cpan.org/dist/XML-Grammar-Fortune/
So my question is: how can I install them properly? There's a repository for
XML-Grammar-Fortune where you can see the Module-Build sub-class I used for
that:
http://svn.berlios.de/svnroot/repos/web-cpan/XML-Grammar-Fortune/trunk
Currently I have:
{{{
package XML::Grammar::Builder;
use strict;
use warnings;
use base 'Test::Run::Builder';
use File::Find;
our $VERSION = '0.0101';
sub new
{
my $package = shift;
my %args = @_;
my @extradata_files;
my $module_name = $args{'module_name'};
$module_name =~ s{::}{-}g;
my $filter_files_cb = sub {
my $filename = $File::Find::name;
if ((-f $filename) &&
($filename =~ /\.(?:mod|xslt|dtd|ent|cat|jpg|rng|xcf\.bz2)$/)
)
{
push @extradata_files, $filename;
}
};
find({ wanted => $filter_files_cb, no_chdir => 1}, "extradata");
my $builder = $package->SUPER::new(
extradata_files =>
{
(map { $_ => $_ } @extradata_files)
},
@_
);
$builder->add_build_element('extradata');
$builder->install_path()->{'extradata'} =
File::Spec->catdir(
$builder->install_destination("lib"),
qw(data modules),
$module_name,
qw(data)
);
$builder->config_data(
'extradata_install_path' =>
[$builder->install_path()->{'extradata'}]
);
return $builder;
}
=begin excluded
my $get_dest_extradata_cb = sub {
my $fn = shift;
# Trying if this makes it work.
# TODO : Either remove this line or the rest of the lines.
return $fn;
$fn =~ s{^extradata}{data};
return "lib/$module_name/$fn";
};
=end excluded
=cut
1;
}}}
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
Apple Inc. is Evil - http://www.shlomifish.org/open-source/anti/apple/
<rindolf> She's a hot chick. But she smokes.
<go|dfish> She can smoke as long as she's smokin'.
Please reply to list if it's a mailing list post - http://shlom.in/reply .