dev/provisioning/modules/drush/manifests/install/composer.pp
changeset 357 e3b168fa7513
parent 353 bf1bc6b08c46
equal deleted inserted replaced
356:139bf74b9374 357:e3b168fa7513
       
     1 define drush::install::composer(
       
     2   $autoupdate,
       
     3   $version,
       
     4   $install_path,
       
     5   $install_type,
       
     6 ) {
       
     7 
       
     8   #private()
       
     9   if $caller_module_name != $module_name {
       
    10     warning("${name} is not part of the public API of the ${module_name} \
       
    11 module and should not be directly included in the manifest.")
       
    12   }
       
    13 
       
    14   # If version is 'master' or a single major release number,
       
    15   # transform into something composer understands.
       
    16   $real_version = $version ? {
       
    17     /\./     => $version,
       
    18     'master' => 'dev-master',
       
    19     default  => "${version}.*",
       
    20   }
       
    21 
       
    22   file { $install_path:
       
    23     ensure => directory,
       
    24   }
       
    25 
       
    26   $base_path = dirname($install_path)
       
    27   $composer_home = "${base_path}/.composer"
       
    28   $prefer = "--prefer-${install_type}"
       
    29   $cmd = "${drush::composer_path} require drush/drush:${real_version} ${prefer}"
       
    30   exec { $cmd:
       
    31     cwd         => $install_path,
       
    32     environment => ["COMPOSER_HOME=${composer_home}"],
       
    33     require     => File[$install_path],
       
    34   }
       
    35   if ! $autoupdate {
       
    36     Exec[$cmd] { creates => "${install_path}/composer.json"}
       
    37   }
       
    38 
       
    39 }
       
    40