diff options
-rwxr-xr-x | files/getcomposer | 16 | ||||
-rw-r--r-- | manifests/composer.pp | 55 |
2 files changed, 60 insertions, 11 deletions
diff --git a/files/getcomposer b/files/getcomposer new file mode 100755 index 0000000..8625042 --- /dev/null +++ b/files/getcomposer @@ -0,0 +1,16 @@ +#!/usr/bin/env sh +# +# See https://getcomposer.org/download/ +# + +# Download +#php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" +wget https://getcomposer.org/installer -O composer-setup.php || exit 1 + +php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" + +if [ -e "composer-setup.php" ]; then + php composer-setup.php --install-dir=/usr/local/bin --filename=composer + #php -r "unlink('composer-setup.php');" + rm composer-setup.php +fi 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'], + } } } |