Puppet Class: php::composer::auto_update

Defined in:
manifests/composer/auto_update.pp

Overview

Install composer package manager

Parameters

max_age

Defines number of days after which Composer should be updated

source

Holds URL to the Composer source file

path

Holds path to the Composer executable

channel

Holds the Update channel (stable|preview|snapshot|1|2)

proxy_type

proxy server type (none|http|https|ftp)

proxy_server

specify a proxy server, with port number if needed. ie: example.com:8080.

Examples

include php::composer::auto_update
class { "php::composer::auto_update":
  "max_age" => 90
}

Parameters:

  • max_age (Integer[1])
  • source (String[1])
  • path (Stdlib::Absolutepath)
  • channel (Php::ComposerChannel) (defaults to: 'stable')
  • proxy_type (Optional[String[1]]) (defaults to: undef)
  • proxy_server (Optional[String[1]]) (defaults to: undef)


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
# File 'manifests/composer/auto_update.pp', line 31

class php::composer::auto_update (
  Integer[1] $max_age,
  String[1] $source,
  Stdlib::Absolutepath $path,
  Php::ComposerChannel  $channel = 'stable',
  Optional[String[1]] $proxy_type   = undef,
  Optional[String[1]] $proxy_server = undef,
) {
  assert_private()

  if $proxy_type and $proxy_server {
    $env = ['HOME=/root', "${proxy_type}_proxy=${proxy_server}"]
  } else {
    $env = ['HOME=/root']
  }

  exec { 'update composer':
    # touch binary when an update is attempted to update its mtime for idempotency when no update is available
    command     => "${path} --no-interaction --quiet self-update --${channel}; touch ${path}",
    environment => $env,
    onlyif      => "test `find '${path}' -mtime +${max_age}`",
    path        => ['/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/', '/usr/local/bin', '/usr/local/sbin'],
    require     => [File[$path], Class['php::cli']],
  }
}