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

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/test.sh' => 'sh/test666.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 <enzo.arlati@libero.it>},
        dist_version_from   => 'lib/Jump.pm',
        build_requires => {
            'Test::More' => 0,
        },
        sh_files => { 'sh/jump.sh' => 'sh/jump.sh'  },
        add_to_cleanup      =>  'Jump-*' ,
        create_makefile_pl => 'traditional',
    );
    
    $builder->install_path( 'sh' => '/etc/profile.d/' );
    $builder->add_build_element( 'sh' );
    
    $builder->create_build_script();
    
    In this file I have to add the statement:
    sh_files => { 'sh/jump.sh' => 'sh/jump.sh'  },
    
    also if the source and destination of the sh files are the same.

    If I comment this line the jump.sh 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/jump.sh' => 'sh/jump.sh' },
      And here the files are not the same. The destination is 'blib/sh/jump.sh'.
        tanks

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (12)
As of 2015-07-31 06:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (274 votes), past polls