Class: Mixlib::Install::ScriptGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/mixlib/install/script_generator.rb

Constant Summary collapse

VALID_INSTALL_OPTS =
%w{omnibus_url
endpoint
http_proxy
https_proxy
install_flags
install_msi_url
nightlies
prerelease
project
root
use_sudo
sudo_command}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version, powershell = false, opts = {}) ⇒ ScriptGenerator

Returns a new instance of ScriptGenerator.



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/mixlib/install/script_generator.rb', line 73

def initialize(version, powershell = false, opts = {})
  @version = (version || "latest").to_s.downcase
  @powershell = powershell
  @http_proxy = nil
  @https_proxy = nil
  @install_flags = nil
  @prerelease = false
  @nightlies = false
  @endpoint = "metadata"
  @omnibus_url = "https://www.chef.io/chef/install.sh"
  @use_sudo = true
  @sudo_command = "sudo -E"

  @root = if powershell
            "$env:systemdrive\\#{Mixlib::Install::Dist::WINDOWS_INSTALL_DIR}\\#{Mixlib::Install::Dist::DEFAULT_PRODUCT}"
          else
            "#{Mixlib::Install::Dist::LINUX_INSTALL_DIR}/#{Mixlib::Install::Dist::DEFAULT_PRODUCT}"
          end

  parse_opts(opts)
end

Instance Attribute Details

#endpointObject

Returns the value of attribute endpoint.



38
39
40
# File 'lib/mixlib/install/script_generator.rb', line 38

def endpoint
  @endpoint
end

#http_proxyObject

Returns the value of attribute http_proxy.



54
55
56
# File 'lib/mixlib/install/script_generator.rb', line 54

def http_proxy
  @http_proxy
end

#https_proxyObject

Returns the value of attribute https_proxy.



55
56
57
# File 'lib/mixlib/install/script_generator.rb', line 55

def https_proxy
  @https_proxy
end

#install_flagsObject

Returns the value of attribute install_flags.



36
37
38
# File 'lib/mixlib/install/script_generator.rb', line 36

def install_flags
  @install_flags
end

#install_msi_urlObject

Returns the value of attribute install_msi_url.



58
59
60
# File 'lib/mixlib/install/script_generator.rb', line 58

def install_msi_url
  @install_msi_url
end

#nightliesObject

Returns the value of attribute nightlies.



34
35
36
# File 'lib/mixlib/install/script_generator.rb', line 34

def nightlies
  @nightlies
end

#omnibus_urlObject

Returns the value of attribute omnibus_url.



57
58
59
# File 'lib/mixlib/install/script_generator.rb', line 57

def omnibus_url
  @omnibus_url
end

#powershellObject

Returns the value of attribute powershell.



30
31
32
# File 'lib/mixlib/install/script_generator.rb', line 30

def powershell
  @powershell
end

#prereleaseObject

Returns the value of attribute prerelease.



32
33
34
# File 'lib/mixlib/install/script_generator.rb', line 32

def prerelease
  @prerelease
end

#rootObject

Returns the value of attribute root.



40
41
42
# File 'lib/mixlib/install/script_generator.rb', line 40

def root
  @root
end

#sudo_commandObject

Returns the value of attribute sudo_command.



44
45
46
# File 'lib/mixlib/install/script_generator.rb', line 44

def sudo_command
  @sudo_command
end

#use_sudoObject

Returns the value of attribute use_sudo.



42
43
44
# File 'lib/mixlib/install/script_generator.rb', line 42

def use_sudo
  @use_sudo
end

#versionObject

Returns the value of attribute version.



28
29
30
# File 'lib/mixlib/install/script_generator.rb', line 28

def version
  @version
end

Instance Method Details

#install_commandObject



95
96
97
98
99
100
101
102
# File 'lib/mixlib/install/script_generator.rb', line 95

def install_command
  vars = if powershell
           install_command_vars_for_powershell
         else
           install_command_vars_for_bourne
         end
  shell_code_from_file(vars)
end