# Define: cpan # # Download and install Perl modules from the Perl Archive Network, the canonical location for Perl code and modules. # # Parameters: # [*creates*] - target directory the software will install to. # [*timeout* ] - timeout for the CPAN command. # # Actions: # # Requires: # # Perl # # Sample Usage: # # cpan { 'perl-module': # creates => '/usr/local/share/perl5/perl-module', # timeout => 600 # } # define cpan( $creates, $timeout ) { Exec { path => '/usr/bin' } package { 'perl-CPAN': ensure => installed } file { [ '/root/.cpan/', '/root/.cpan/CPAN/' ]: ensure => directory } file { '/root/.cpan/CPAN/MyConfig.pm': content => template('cpan/MyConfig.pm.erb'), require => [ Package['perl-CPAN'], File[[ '/root/.cpan/', '/root/.cpan/CPAN/' ]] ] } exec { "cpan-${name}": command => "sudo perl -MCPAN -e 'install ${name}'", creates => $creates, require => File['/root/.cpan/CPAN/MyConfig.pm'], timeout => $timeout } }