class Inspec::Resources::CpanPackage
Public Class Methods
new(package_name, perl_lib_path = nil)
click to toggle source
# File lib/inspec/resources/cpan.rb, line 20 def initialize(package_name, perl_lib_path = nil) @package_name = package_name @perl_lib_path = perl_lib_path @perl_cmd = "perl" # this resource is not supported on Windows return skip_resource "The `cpan` resource is not supported on your OS yet." if inspec.os.windows? return skip_resource "perl not found" unless inspec.command(@perl_cmd).exist? end
Public Instance Methods
info()
click to toggle source
# File lib/inspec/resources/cpan.rb, line 30 def info return @info if defined?(@info) @info = {} @info[:type] = "cpan" @info[:name] = @package_name # set PERL5LIB environment variable if a custom lib path is given lib_path = @perl_lib_path.nil? ? "" : "PERL5LIB=#{@perl_lib_path} " cmd = inspec.command("#{lib_path + @perl_cmd} -le 'eval \"require $ARGV[0]\" and print $ARGV[0]->VERSION or exit 1' #{@package_name}") @info[:installed] = cmd.exit_status == 0 return @info unless cmd.exit_status == 0 @info[:version] = cmd.stdout.strip @info end
installed?()
click to toggle source
# File lib/inspec/resources/cpan.rb, line 46 def installed? info[:installed] == true end
to_s()
click to toggle source
# File lib/inspec/resources/cpan.rb, line 54 def to_s "Perl Module #{@package_name}" end
version()
click to toggle source
# File lib/inspec/resources/cpan.rb, line 50 def version info[:version] end