class Inspec::Resources::OneGetPackage
Public Class Methods
new(package_name)
click to toggle source
# File lib/inspec/resources/oneget.rb, line 22 def initialize(package_name) @package_name = package_name # verify that this resource is only supported on Windows return skip_resource "The `oneget` resource is not supported on your OS." unless inspec.os.windows? end
Public Instance Methods
info()
click to toggle source
# File lib/inspec/resources/oneget.rb, line 29 def info return @info if defined?(@info) @info = {} @info[:type] = "oneget" @info[:installed] = false cmd = inspec.command("Get-Package -Name '#{@package_name}' | ConvertTo-Json") # cannot rely on exit code for now, successful command returns exit code 1 # return nil if cmd.exit_status != 0 # try to parse json begin pkgs = JSON.parse(cmd.stdout) @info[:installed] = true # sometimes we get multiple values if pkgs.is_a?(Array) # select the first entry pkgs = pkgs.first end rescue JSON::ParserError => _e return @info end @info[:name] = pkgs["Name"] if pkgs.key?("Name") @info[:version] = pkgs["Version"] if pkgs.key?("Version") @info end
installed?()
click to toggle source
# File lib/inspec/resources/oneget.rb, line 59 def installed? info[:installed] == true end
to_s()
click to toggle source
# File lib/inspec/resources/oneget.rb, line 67 def to_s "OneGet Package #{@package_name}" end
version()
click to toggle source
# File lib/inspec/resources/oneget.rb, line 63 def version info[:version] end