author | ymh <ymh.work@gmail.com> |
Fri, 17 Nov 2017 18:02:24 +0100 | |
changeset 568 | fd2a9b706231 |
parent 353 | bf1bc6b08c46 |
permissions | -rw-r--r-- |
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 |