dev/provisioning/modules/drush/manifests/install.pp
author ymh <ymh.work@gmail.com>
Mon, 19 Dec 2016 21:58:29 +0100
changeset 478 b621657bb436
parent 353 bf1bc6b08c46
permissions -rw-r--r--
remove unnecessary comments
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
353
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# == Defined type: drush::install
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
# Installs a Drush version with the given method.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
# === Parameters
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
# [*version*]
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
#   Drush release to install. Example: 7, 6.6, master.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
# [*install_type*]
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
#   Install distribution package or source code.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
#   Valid values: 'dist', 'source'. Defaults to 'dist'.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
# [*autoupdate*]
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
#   Try and install new versions automatically. Defaults to false.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
# [*method*]
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
#   Installation method. It only accepts composer at present.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
#
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
define drush::install(
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
  $version,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
  $install_type = 'dist',
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
  $autoupdate   = false,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
  $method       = 'composer',
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
) {
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
  $install_types = [ 'dist', 'source' ]
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
  if ! ($install_type in $install_types) {
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    fail("'${install_type}' is not a valid value for creation_mode. Valid values: ${install_types}.")
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
  }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
  # Pick major version.
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
  $parts = split($version, '[.]')
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
  $version_major = $parts[0]
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
  $drush        = "drush${version_major}"
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
  $drush_exe    = "/usr/local/bin/${drush}"
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
  $install_path = "${drush::install_base_path}/${version_major}"
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
  case $method {
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    'composer': {
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
      drush::install::composer { $drush:
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        autoupdate   => $autoupdate,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        version      => $version,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        install_path => $install_path,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
        install_type => $install_type,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        notify       => Exec["${drush}-first-run"],
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
      }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
      file { $drush_exe:
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        ensure  => link,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        target  => "${install_path}/vendor/bin/drush",
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        require => Drush::Install::Composer[$drush],
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
      }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
    }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    default: {
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
      fail("Unknown install method: '${method}'.")
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
    }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
  }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
  exec { "${drush}-first-run":
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
    command     => "/usr/bin/su - -c '${drush_exe} status'",
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    require     => File[$drush_exe],
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
    refreshonly => true,
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
  }
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
}
bf1bc6b08c46 correct provisioning to install drush and correct config files + module definition for menu access problem
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68