Module: Windows::Pkg

Includes:
Beaker::CommandFactory
Included in:
Host
Defined in:
lib/beaker/host/windows/pkg.rb

Instance Attribute Summary

Attributes included from Beaker::CommandFactory

#assertions

Instance Method Summary collapse

Methods included from Beaker::CommandFactory

#execute, #fail_test

Instance Method Details

#check_for_command(name) ⇒ Object



4
5
6
7
# File 'lib/beaker/host/windows/pkg.rb', line 4

def check_for_command(name)
  result = exec(Beaker::Command.new("which #{name}"), :acceptable_exit_codes => (0...127))
  result.exit_code == 0
end

#check_for_package(name) ⇒ Object



9
10
11
12
# File 'lib/beaker/host/windows/pkg.rb', line 9

def check_for_package(name)
  result = exec(Beaker::Command.new("cygcheck #{name}"), :acceptable_exit_codes => (0...127))
  result.exit_code == 0
end

#determine_if_x86_64Boolean

Examine the host system to determine the architecture, overrides default host determine_if_x86_64 so that wmic is used

Returns:

  • (Boolean)

    true if x86_64, false otherwise



40
41
42
# File 'lib/beaker/host/windows/pkg.rb', line 40

def determine_if_x86_64
  identify_windows_architecture =~ /64/
end

#install_package(name, cmdline_args = '') ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/beaker/host/windows/pkg.rb', line 14

def install_package(name, cmdline_args = '')
  cygwin = ""
  rootdir = ""

  arch = identify_windows_architecture

  if arch == '64'
    rootdir = "c:\\\\cygwin64"
    cygwin = "setup-x86_64.exe"
  else #32 bit version
    rootdir = "c:\\\\cygwin"
    cygwin = "setup-x86.exe"
  end

  if not check_for_command(cygwin)
    execute("curl --retry 5 http://cygwin.com/#{cygwin} -o /cygdrive/c/Windows/System32/#{cygwin}")
  end
  execute("#{cygwin} -q -n -N -d -R #{cmdline_args} #{rootdir} -s http://cygwin.osuosl.org -P #{name}")
end

#uninstall_package(name, cmdline_args = '') ⇒ Object



34
35
36
# File 'lib/beaker/host/windows/pkg.rb', line 34

def uninstall_package(name, cmdline_args = '')
  raise "Package #{name} cannot be uninstalled on #{self}"
end