Defined Type: psick::php::pear::module

Defined in:
manifests/php/pear/module.pp

Overview

Define: psick::php::pear::module

Installs the defined php pear component

Variables:

use_package

(default=true) - Tries to install pear module with the relevant OS package If set to “no” it installs the module via pear command

install_options

An array of package manager install options. See $psick::php::install_options

preferred_state

(default=“stable”) - Define which preferred state to use when installing Pear modules via pear via command line (when use_package=false)

alldeps

(default=“false”) - Define if all the available (optional) modules should be installed. (when use_package=false)

Usage: psick::php::pear::module { packagename: } Example: psick::php::pear::module { Crypt-CHAP: }

Parameters:

  • service (String) (defaults to: '')
  • use_package (Boolean) (defaults to: true)
  • install_options (Array) (defaults to: [])
  • preferred_state (String) (defaults to: 'stable')
  • alldeps (Boolean) (defaults to: false)
  • version (String) (defaults to: 'present')
  • repository (String) (defaults to: 'pear.php.net')
  • service_autorestart (Boolean) (defaults to: false)
  • module_prefix (String) (defaults to: '')
  • path (String) (defaults to: '/usr/bin:/usr/sbin:/bin:/sbin')
  • ensure (String) (defaults to: 'present')
  • timeout (Integer) (defaults to: 300)


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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'manifests/php/pear/module.pp', line 26

define psick::php::pear::module (
  String $service              = '', # lint:ignore:params_empty_string_assignment
  Boolean $use_package         = true,
  Array $install_options       = [],
  String $preferred_state      = 'stable',
  Boolean $alldeps             = false,
  String $version              = 'present',
  String $repository           = 'pear.php.net',
  Boolean $service_autorestart = false,
  String $module_prefix        = '', # lint:ignore:params_empty_string_assignment
  String $path                 = '/usr/bin:/usr/sbin:/bin:/sbin',
  String $ensure               = 'present',
  Integer $timeout             = 300
) {
  include psick::php::pear

  $bool_use_package = any2bool($use_package)
  $bool_alldeps = any2bool($alldeps)
  $manage_alldeps = $bool_alldeps ? {
    true  => '--alldeps',
    false => '',
  }

  $pear_source = $version ? {
    'present' => "${repository}/${name}",
    default   => "${repository}/${name}-${version}",
  }

  $pear_exec_command = $ensure ? {
    'present' => "pear -d preferred_state=${preferred_state} install ${manage_alldeps} ${pear_source}",
    'absent'  => "pear uninstall -n ${pear_source}",
  }

  $pear_exec_require = $repository ? {
    'pear.php.net' => Package['php-pear'],
    default        => [Package['php-pear'],Php::Pear::Config['auto_discover']],
  }

  $pear_exec_unless = $ensure ? {
    'present' => "pear shell-test ${pear_source} > 0",
    'absent'  => undef
  }

  $pear_exec_onlyif = $ensure ? {
    'present' => undef,
    'absent'  => "pear shell-test ${pear_source} > 0",
  }

  $service_ref = $service ? {
    ''      => undef,
    default => Service[$service],
  }

  $real_service_autorestart = $service_autorestart ? {
    true    => $service_ref,
    false   => undef,
  }

  $real_module_prefix = $module_prefix ? {
    ''      => $psick::php::pear_module_prefix,
    default => $module_prefix,
  }
  $package_name = "${real_module_prefix}${name}"

  $real_install_options = $install_options ? {
    ''      => $psick::php::install_options,
    default => $install_options,
  }

  case $bool_use_package {
    true: {
      package { "pear-${name}":
        ensure          => $ensure,
        name            => $package_name,
        install_options => $real_install_options,
        notify          => $real_service_autorestart,
      }
    }
    default: {
      if $repository != 'pear.php.net' {
        if !defined (Php::Pear::Config['auto_discover']) {
          psick::php::pear::config { 'auto_discover':
            value => '1',
          }
        }
      }
      exec { "pear-${name}":
        command => $pear_exec_command,
        path    => $path,
        unless  => $pear_exec_unless,
        onlyif  => $pear_exec_onlyif,
        require => $pear_exec_require,
        timeout => $timeout,
      }
    }
  } # End Case
}