module PuppetfileResolver::SpecSearchers::Local
Public Class Methods
find_all(_puppetfile_module, dependency, cache, resolver_ui, config)
click to toggle source
# File lib/puppetfile-resolver/spec_searchers/local.rb, line 9 def self.find_all(_puppetfile_module, dependency, cache, resolver_ui, config) dep_id = ::PuppetfileResolver::SpecSearchers::Common.dependency_cache_id(self, dependency) # Has the information been cached? return cache.load(dep_id) if cache.exist?(dep_id) result = [] # Find the module in the modulepaths config.puppet_module_paths.each do |module_path| next unless Dir.exist?(module_path) module_dir = File.expand_path(File.join(module_path, dependency.name)) next unless Dir.exist?(module_dir) metadata_file = File.join(module_dir, 'metadata.json') next unless File.exist?(metadata_file) metadata = nil begin metadata = ::PuppetfileResolver::Util.symbolise_object( ::JSON.parse(File.open(metadata_file, 'rb:utf-8') { |f| f.read }) ) rescue StandardError => _e # rubocop:disable Lint/SuppressedException Todo # TODO: Should really do something? end resolver_ui.debug { "Found local module at #{metadata_file}" } result << Models::ModuleSpecification.new( name: metadata[:name], origin: :local, version: metadata[:version], metadata: metadata ) end cache.save(dep_id, result) result end