Defined Type: perl::cpan::module
- Defined in:
- manifests/cpan/module.pp
Overview
Define: perl::cpan::module
Installs the defined perl module using cpan
Variables:
- use_package
-
(default=true) - Tries to install perl module with the relevant OS package If set to “no” it installs the module via a cpan command
Usage: perl::cpan::module { packagename: } Example: perl::cpan::module { ‘Net::SSLeay’: }
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'manifests/cpan/module.pp', line 15
define perl::cpan::module (
$use_package = false,
$package_name = 'package_default',
$package_prefix = $perl::package_prefix,
$package_suffix = $perl::package_suffix,
$url = 'url_default',
$exec_path = '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin',
$exec_environment = [],
$exec_timeout = '600',
$ensure = 'present',
$force = false,
) {
include ::perl::cpan
$pkg_name = regsubst($name,'::','-')
$real_package_name = $package_name ? {
'package_default' => "${package_prefix}${pkg_name}${package_suffix}",
default => $package_name,
}
$bool_use_package = any2bool($use_package)
$install_name = $url ? {
'url_default' => $name,
default => $url,
}
if($force) { $force_string = '-f' }
else { $force_string = ' ' }
$cpan_command = $ensure ? {
'present' => "cpan ${force_string} ${install_name}",
'absent' => "pm-uninstall -f ${name}",
}
$cpan_command_check = $ensure ? {
'present' => "perldoc -l ${name}",
'absent' => "perldoc -l ${name} || true",
}
case $bool_use_package {
true: {
package { "perl-${name}":
ensure => $ensure,
name => $real_package_name,
}
}
default: {
exec { "cpan-${name}-${ensure}":
command => $cpan_command,
unless => $cpan_command_check,
path => $exec_path,
environment => $exec_environment,
timeout => $exec_timeout,
require => $perl::cpan_require,
}
}
}
}
|