Puppet Class: software::utilities::iterm

Inherits:
software::params
Defined in:
manifests/utilities/iterm.pp

Overview

Parameters:

  • ensure (Any) (defaults to: $software::params::software_ensure)
  • applications_path (Any) (defaults to: $software::params::applications_path)
  • utilities_path (Any) (defaults to: $software::params::utilities_path)
  • version (Any) (defaults to: $software::params::iterm_version)
  • url (Any) (defaults to: $software::params::iterm_url)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'manifests/utilities/iterm.pp', line 6

class software::utilities::iterm (
  $ensure            = $software::params::software_ensure,
  $applications_path = $software::params::applications_path,
  $utilities_path    = $software::params::utilities_path,
  $version           = $software::params::iterm_version,
  $url               = $software::params::iterm_url,
) inherits software::params {

  validate_string($ensure)

  case $::operatingsystem {
    'Darwin': {
      validate_absolute_path($applications_path)
      validate_absolute_path($utilities_path)
      validate_string($version)
      validate_string($url)

      $app       = 'iTerm.app'
      $app_path  = "${applications_path}/${app}"
      $util_path = "${utilities_path}/${app}"

      package { "iTerm-${version}":
        ensure   => $ensure,
        provider => appcompressed,
        source   => $url,
      } ->

      # Move to /Applications/Utilities/
      exec { "iTerm-${version}->Utilities":
        command => "rm -rf '${util_path}' && mv '${app_path}' '${util_path}'",
        onlyif  => "test -e '${app_path}'",
        path    => ['/bin', '/usr/bin', '/sbin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'],
      }
    }
    default: {
      fail("The ${name} class is not supported on ${::operatingsystem}.")
    }
  }

}