dev/provisioning/modules/drush/manifests/init.pp
changeset 357 e3b168fa7513
parent 353 bf1bc6b08c46
child 410 240ca282331d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/drush/manifests/init.pp	Tue Oct 18 18:46:45 2016 +0530
@@ -0,0 +1,90 @@
+# == Class: drush
+#
+# Installs Drush system-wide with Composer and prepares a working environment.
+#
+# === Parameters
+#
+# [*versions*]
+#   Array of versions of drush to install.
+#   Valid values are '6', '7', '8', and 'master'.
+#
+# [*default_version*]
+#   String with the drush version considered the main version.
+#
+# [*install_type*]
+#   Install distribution package or source code.
+#   Valid values: 'dist', 'source'. Defaults to 'dist'.
+#
+# [*autoupdate*]
+#   Try and install new versions automatically. Defaults to false.
+#
+# [*ensure_extra_packages*]
+#  Boolean indicating wether extra system packages must be installed.
+#  It defaults to false to not interfere with other modules.
+#
+# [*extra_packages*]
+#  Array of extra packages to install if ensure_extra_packages is true.
+#
+# [*bash_integration*]
+#   Boolean indicating whether to enable drush bash facilities. It configures
+#   bash to source drush's example.bashrc for any session.
+#
+# [*bash_autocompletion*]
+#   Boolean indicating whether to enable bash autocompletion for drush commands.
+#   Doesn't take effect if bash_integration is true.
+#
+# [*extensions*]
+#   List of drush extensions to download.
+#
+# [*aliases*]
+#   Hash of aliases to make available system wide.
+#
+# [*composer_path*]
+#   Absolute path to composer executable.
+#
+# [*php_path*]
+#   Path to an alternative php executable to run drush with.
+#   If provided, it will set DRUSH_PHP environment variable system-wide.
+#
+# [*php_ini_path*]
+#   Path to an alternative php ini file. If provided, it will set PHP_INI
+#   environment variable system-wide. See `docs-ini-files` for details.
+#
+# [*drush_ini_path*]
+#   Path to a ini file with php overrides. If provided, it will set DRUSH_INI
+#   environment variable system-wide. See `docs-ini-files` for details.
+#
+class drush(
+  $versions              = ['7',],
+  $default_version       = '7',
+  $install_type          = 'dist',
+  $autoupdate            = false,
+  $ensure_extra_packages = false,
+  $extra_packages        = $drush::params::extra_packages,
+  $bash_integration      = false,
+  $bash_autocompletion   = true,
+  $extensions            = [],
+  $aliases               = {},
+  $composer_path         = '/usr/local/bin/composer',
+  $php_path              = undef,
+  $php_ini_path          = undef,
+  $drush_ini_path        = undef,
+) inherits drush::params {
+
+  # Pick default major version.
+  validate_string($default_version)
+  $parts = split($default_version, '[.]')
+  $default_version_major = $parts[0]
+
+  validate_absolute_path($composer_path)
+
+  $install_base_path = '/opt/drush'
+  $drush_exe_default = '/usr/local/bin/drush'
+
+  class{'drush::setup': } ->
+  class{'drush::config': } ~>
+  class{'drush::cacheclear': } ->
+  Class['drush']
+
+}
+