Method: Unix::Exec#ssh_set_user_environment

Defined in:
lib/beaker/host/unix/exec.rb

#ssh_set_user_environment(env) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Fills the user SSH environment file.

Parameters:

  • env (Hash{String=>String})

    Environment variables to set on the system, in the form of a hash of String variable names to their corresponding String values.

Returns:

  • nil



273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
# File 'lib/beaker/host/unix/exec.rb', line 273

def ssh_set_user_environment(env)
  #ensure that ~/.ssh/environment exists
  ssh_env_file_dir = Pathname.new(self[:ssh_env_file]).dirname
  mkdir_p(ssh_env_file_dir)
  exec(Beaker::Command.new("chmod 0600 #{ssh_env_file_dir}"))
  exec(Beaker::Command.new("touch #{self[:ssh_env_file]}"))
  #add the constructed env vars to this host
  add_env_var('PATH', '$PATH')
  # FIXME
  if self['platform'] =~ /openbsd-(\d)\.?(\d)-(.+)/
    version = "#{$1}.#{$2}"
    arch = $3
    arch = 'amd64' if ['x64', 'x86_64'].include?(arch)
    add_env_var('PKG_PATH', "http://ftp.openbsd.org/pub/OpenBSD/#{version}/packages/#{arch}/")
  elsif self['platform'] =~ /solaris-10/
    add_env_var('PATH', '/opt/csw/bin')
  end

  #add the env var set to this test host
  env.each_pair do |var, value|
    add_env_var(var, value)
  end
end