Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
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
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 drinking their drinks and smoking their pipes about the Monastery: (12)
As of 2014-08-22 18:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (163 votes), past polls