class Inspec::PluginCtl
def initialize(home = nil)
def initialize(home = nil) @paths = [] # load plugins in the same gem installation lib_home = File.expand_path(File.join(__FILE__, "..", "..", "..", "..")) @paths += Dir[lib_home + "/inspec-*-*/lib/inspec-*rb"] # traverse out of inspec-vX.Y.Z/lib/inspec/plugins.rb @home = home || File.join(Inspec.config_dir, "plugins") @paths += Dir[File.join(@home, "**{,/*/**}", "*.gemspec")] .map { |x| File.dirname(x) } .map { |x| Dir[File.join(x, "lib", "inspec-*.rb")] } .flatten # load bundled plugins bundled_dir = __dir__ @paths += Dir[File.join(bundled_dir, "..", "bundles", "inspec-*.rb")].flatten # map paths to names @registry = Hash[@paths.map do |x| [File.basename(x, ".rb"), x] end] end