aboutsummaryrefslogtreecommitdiff
path: root/manifests/composer.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/composer.pp')
-rw-r--r--manifests/composer.pp55
1 files changed, 44 insertions, 11 deletions
diff --git a/manifests/composer.pp b/manifests/composer.pp
index 4ab3337..b6274f6 100644
--- a/manifests/composer.pp
+++ b/manifests/composer.pp
@@ -1,16 +1,49 @@
-class php::composer {
- # TODO: future
+class php::composer(
+ $provider = 'upstream',
+) {
package { 'composer':
- ensure => absent,
+ ensure => $provider ? {
+ 'package' => present,
+ default => absent,
+ },
}
- # Composer
- exec { 'getcomposer':
- # 'The HOME or COMPOSER_HOME environment variable must be set for composer to install correctly'
- environment => [ 'HOME=/root' ],
- command => '/usr/bin/wget -O - https://getcomposer.org/installer | /usr/bin/php && /bin/mv composer.phar /usr/local/bin/composer',
- user => 'root',
- cwd => '/tmp',
- creates => '/usr/local/bin/composer',
+ file { '/usr/local/bin/getcomposer':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0755',
+ source => 'puppet:///modules/php/getcomposer',
+ }
+
+ if ($provider == 'package') {
+ file { '/usr/local/bin/composer':
+ ensure => absent,
+ }
+ }
+
+ cron { "composer-self-update":
+ command => "/usr/local/bin/composer self-update",
+ user => root,
+ hour => "03",
+ minute => "30",
+ ensure => $provider ? {
+ 'upstream' => present,
+ default => absent,
+ },
+ require => Exec['getcomposer'],
+ }
+
+ if ($provider == 'upstream') {
+ exec { 'getcomposer':
+ # 'The HOME or COMPOSER_HOME environment variable must be set for composer to install correctly'
+ environment => [ 'HOME=/root' ],
+ #command => '/usr/bin/wget -O - https://getcomposer.org/installer | /usr/bin/php && /bin/mv composer.phar /usr/local/bin/composer',
+ command => '/usr/local/bin/getcomposer',
+ user => 'root',
+ cwd => '/tmp',
+ creates => '/usr/local/bin/composer',
+ require => File['/usr/local/bin/getcomposer'],
+ }
}
}