]> gitweb.fluxo.info Git - puppet-php.git/commitdiff
Up-to-date composer handling by package or upstream version
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 28 Oct 2017 11:36:38 +0000 (09:36 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 28 Oct 2017 11:36:38 +0000 (09:36 -0200)
files/getcomposer [new file with mode: 0755]
manifests/composer.pp

diff --git a/files/getcomposer b/files/getcomposer
new file mode 100755 (executable)
index 0000000..8625042
--- /dev/null
@@ -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
index 4ab3337c09c02df613b1e1a41fac02e8a78f516f..b6274f6ec2021681759e7af28f3e50f6c65f0bca 100644 (file)
@@ -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'],
+    }
   }
 }