class Windows::Host

A windows host with cygwin tools installed

def determine_ssh_server

Returns:
  • (Symbol) - Value for the SSH Server in use
def determine_ssh_server
  return @ssh_server if @ssh_server
  @ssh_server = :openssh
  status = execute('cmd.exe /c sc query BvSshServer', :accept_all_exit_codes => true)
  if status&.include?('4  RUNNING')
    @ssh_server = :bitvise
  else
    status = execute('cmd.exe /c sc qc sshd', :accept_all_exit_codes => true)
    @ssh_server = :win32_openssh if status&.include?('C:\\Windows\\System32\\OpenSSH\\sshd.exe')
  end
  @ssh_server
end

def external_copy_base

def external_copy_base
  return @external_copy_base if @external_copy_base
  @external_copy_base = execute('echo `cygpath -smF 35`/')
  @external_copy_base
end

def initialize name, host_hash, options

def initialize name, host_hash, options
  super
  @ssh_server         = nil
  @scp_separator      = '\\'
  @external_copy_base = nil
end

def platform_defaults

def platform_defaults
  h = Beaker::Options::OptionsHash.new
  h.merge({
            'user' => 'Administrator',
            'group' => 'Administrators',
            'pathseparator' => ';',
          })
end