class Inspec::Resources::OsEnv
Public Class Methods
new(env = nil, target = nil)
click to toggle source
# File lib/inspec/resources/os_env.rb, line 24 def initialize(env = nil, target = nil) @osenv = env @target = unless target.nil? if target.casecmp("system") == 0 "Machine" else "User" end end end
Public Instance Methods
content()
click to toggle source
# File lib/inspec/resources/os_env.rb, line 44 def content return @content if defined?(@content) @content = value_for(@osenv, @target) unless @osenv.nil? end
split()
click to toggle source
# File lib/inspec/resources/os_env.rb, line 35 def split # we can't take advantage of `File::PATH_SEPARATOR` as code is # evaluated on the host machine path_separator = inspec.os.windows? ? ";" : ":" # -1 is required to catch cases like dir1::dir2: # where we have a trailing : content.nil? ? [] : content.split(path_separator, -1) end
to_s()
click to toggle source
# File lib/inspec/resources/os_env.rb, line 50 def to_s if @osenv.nil? "Environment variables" else "Environment variable #{@osenv}" end end
Private Instance Methods
value_for(env, target = nil)
click to toggle source
# File lib/inspec/resources/os_env.rb, line 60 def value_for(env, target = nil) command = if inspec.os.windows? if target.nil? "${Env:#{env}}" else "[System.Environment]::GetEnvironmentVariable('#{env}', [System.EnvironmentVariableTarget]::#{target})" end else "env" end out = inspec.command(command) unless out.exit_status == 0 skip_resource "Can't read environment variables on #{inspec.os.name}. "\ "Tried `#{command}` which returned #{out.exit_status}" end if inspec.os.windows? out.stdout.strip else params = SimpleConfig.new(out.stdout).params params[env] end end