implement the 'metadata' syntax for Puppetfile
# File lib/librarian/puppet/dsl.rb, line 67 def metadata f = working_path.join('metadata.json') unless File.exists?(f) msg = "Metadata file does not exist: #{f}" # try modulefile, in case we don't have a Puppetfile and we are using the default template if File.exists?(modulefile_path) modulefile return else raise Error, msg end end begin json = JSON.parse(File.read(f)) rescue JSON::ParserError => e raise Error, "Unable to parse json file #{f}: #{e}" end dependencyList = json['dependencies'] dependencyList.each do |d| mod(d['name'], d['version_requirement']) end end
implement the 'modulefile' syntax for Puppetfile
# File lib/librarian/puppet/dsl.rb, line 57 def modulefile f = modulefile_path raise Error, "Modulefile file does not exist: #{f}" unless File.exists?(f) File.read(f).lines.each do |line| regexp = /\s*dependency\s+('|")([^'"]+)\1\s*(?:,\s*('|")([^'"]+)\3)?/ regexp =~ line && mod($2, $4) end end
save the specfile and call librarian
# File lib/librarian/puppet/dsl.rb, line 50 def run(specfile = nil) @working_path = specfile.kind_of?(Pathname) ? specfile.parent : Pathname.new(Dir.pwd) @specfile = specfile super end
# File lib/librarian/puppet/dsl.rb, line 92 def modulefile_path working_path.join('Modulefile') end