phpservermon/puphpet/puppet/modules/php/manifests/pecl/module.pp

127 lines
3.3 KiB
Puppet

# Define: php::pecl::module
#
# Installs the defined php pecl component
#
# == Parameters
#
# [*service_autorestart*]
# wathever we want a module installation notify a service to restart.
#
# [*service*]
# Service to restart.
#
# [*use_package*]
# Tries to install pecl module with the relevant package.
# If set to "no" it installs the module via pecl command. Default: true
#
# [*preferred_state*]
# Define which preferred state to use when installing Pear modules via pecl
# command line (when use_package=no). Default: true
#
# [*auto_answer*]
# The answer(s) to give to pecl prompts for unattended install
#
# [*verbose*]
# (Optional) - If you want to see verbose pecl output during installation.
# This can help to debug installation problems (missing packages) during
# installation process. Default: false
#
# == Examples
# php::pecl::module { 'intl': }
#
# This will install xdebug from pecl source instead of using the package
#
# php::pecl::module { 'xdebug':.
# use_package => "no",
# }
#
define php::pecl::module (
$service_autorestart = $php::bool_service_autorestart,
$service = $php::service,
$use_package = 'yes',
$preferred_state = 'stable',
$auto_answer = '\\n',
$ensure = present,
$path = '/usr/bin:/usr/sbin:/bin:/sbin',
$verbose = false,
$version = '',
$config_file = $php::config_file) {
include php
include php::pear
include php::devel
$manage_service_autorestart = $service_autorestart ? {
true => $service ? {
'' => undef,
default => "Service[${service}]",
},
false => undef,
undef => undef,
}
$real_package_name = $::operatingsystem ? {
ubuntu => "php5-${name}",
debian => "php5-${name}",
default => "php-${name}",
}
case $use_package {
yes: {
package { "php-${name}":
ensure => $ensure,
name => $real_package_name,
notify => $manage_service_autorestart,
}
}
default: {
$bool_verbose = any2bool($verbose)
$pecl_exec_logoutput = $bool_verbose ? {
true => true,
false => undef,
}
if $version != '' {
$new_version = "-${version}"
} else {
$new_version = ''
}
$pecl_exec_command = $ensure ? {
present => "printf \"${auto_answer}\" | pecl -d preferred_state=${preferred_state} install ${name}${new_version}",
absent => "pecl uninstall -n ${name}",
}
$pecl_exec_unless = $ensure ? {
present => "pecl info ${name}",
absent => undef
}
$pecl_exec_onlyif = $ensure ? {
present => undef,
absent => "pecl info ${name}",
}
exec { "pecl-${name}":
command => $pecl_exec_command,
unless => $pecl_exec_unless,
onlyif => $pecl_exec_onlyif,
logoutput => $pecl_exec_logoutput,
path => $path,
require => [ Class['php::pear'], Class['php::devel']],
}
if $php::bool_augeas == true {
php::augeas { "augeas-${name}":
ensure => $ensure,
entry => "PHP/extension[. = \"${name}.so\"]",
value => "${name}.so",
notify => $manage_service_autorestart,
target => $config_file,
}
}
}
} # End Case
}