forked from bigcommerce/puppet-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomposer.pp
56 lines (51 loc) · 1.32 KB
/
composer.pp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
# Install composer package manager
#
# === Parameters
#
# [*source*]
# Holds URL to the Composer source file
#
# [*path*]
# Holds path to the Composer executable
#
# [*auto_update*]
# Defines if composer should be auto updated
#
# [*max_age*]
# Defines the time in days after which an auto-update gets executed
#
class php::composer (
$source = $::php::params::composer_source,
$path = $::php::params::composer_path,
$auto_update = true,
$max_age = $::php::params::composer_max_age,
$root_group = $::php::params::root_group,
) inherits ::php::params {
if $caller_module_name != $module_name {
warning('php::composer is private')
}
validate_string($source)
validate_absolute_path($path)
validate_bool($auto_update)
validate_re("x${max_age}", '^x\d+$')
ensure_packages(['wget'])
exec { 'download composer':
command => "wget ${source} -O ${path}",
creates => $path,
path => ['/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/',
'/usr/local/bin', '/usr/local/sbin'],
require => [Class['::php::cli'],Package['wget']],
} ->
file { $path:
mode => '0555',
owner => root,
group => $root_group,
}
if $auto_update {
class { '::php::composer::auto_update':
max_age => $max_age,
source => $source,
path => $path,
}
}
}