From f9fbad5598b616c7bb89d0c36c64567d8db75531 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 28 Oct 2017 09:36:38 -0200 Subject: Up-to-date composer handling by package or upstream version --- manifests/composer.pp | 55 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 11 deletions(-) (limited to 'manifests/composer.pp') 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'], + } } } -- cgit v1.2.3