Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Add bash file to a dist package

by lima1 (Curate)
on Aug 17, 2010 at 01:41 UTC ( #855387=note: print w/ replies, xml ) Need Help??

in reply to Add bash file to a dist package

With Module::Build, add something like this to your Build.PL:

my $builder = Module::Build->new( ... sh_files => { 'path/in/dist/to/' => 'sh/'}, install_path => { sh => '/etc/profile.d' }, ... } $builder->add_build_element('sh'); $builder->create_build_script();
Read the Module::Build::Cookbook for details.

Comment on Re: Add bash file to a dist package
Download Code
Replies are listed 'Best First'.
Re^2: Add bash file to a dist package
by earlati (Novice) on Aug 17, 2010 at 09:55 UTC
    Thanks, I follow your hints and it seems to work.

    Just one think is not clear to me again.

    I used a Build.PL file like this:

    use strict;
    use warnings;
    use Module::Build;
    my $builder = Module::Build->new(
        module_name         => 'Jump',
        license             => 'perl',
        dist_author         => q{Enzo Arlati <>},
        dist_version_from   => 'lib/',
        build_requires => {
            'Test::More' => 0,
        sh_files => { 'sh/' => 'sh/'  },
        add_to_cleanup      =>  'Jump-*' ,
        create_makefile_pl => 'traditional',
    $builder->install_path( 'sh' => '/etc/profile.d/' );
    $builder->add_build_element( 'sh' );
    In this file I have to add the statement:
    sh_files => { 'sh/' => 'sh/'  },
    also if the source and destination of the sh files are the same.

    If I comment this line the file are not processed.

    Is this correct and there are a more polite way to tell the program to include the file *.sh ?

    Regards, Enzo

      According Module::Build::Cookbook, if you specify
      $builder->add_build_element( 'sh' );
      this will find all *.sh files in the lib directory of your distribution. In your case, the bash script is in a non-standard directory, so you have to tell Module::Build where it is:
      sh_files => { 'sh/' => 'sh/' },
      And here the files are not the same. The destination is 'blib/sh/'.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://855387]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2015-11-28 23:35 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (746 votes), past polls