Sha256: db567ffbe3566f1d83a22eabf5339b79c707d361a785e13cb10d61a8fabd4aed
Contents?: true
Size: 1.61 KB
Versions: 5
Compression:
Stored size: 1.61 KB
Contents
# encoding: utf-8 # Usage: # describe cpan('DBD::Pg') do # it { should be_installed } # end # module Inspec::Resources class CpanPackage < Inspec.resource(1) name 'cpan' supports platform: 'unix' desc 'Use the `cpan` InSpec audit resource to test Perl modules that are installed by system packages or the CPAN installer.' example " describe cpan('DBD::Pg') do it { should be_installed } end " 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 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.zero? return @info unless cmd.exit_status.zero? @info[:version] = cmd.stdout.strip @info end def installed? info[:installed] == true end def version info[:version] end def to_s "Perl Module #{@package_name}" end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
inspec-2.1.81 | lib/resources/cpan.rb |
inspec-2.1.21 | lib/resources/cpan.rb |
inspec-2.1.10 | lib/resources/cpan.rb |
inspec-2.0.32 | lib/resources/cpan.rb |
inspec-2.0.17 | lib/resources/cpan.rb |