1 module Puppet::Parser::Functions
2 newfunction(:load_module_metadata, :type => :rvalue, :doc => <<-EOT
5 raise(Puppet::ParseError, "load_module_metadata(): Wrong number of arguments, expects one or two") unless [1,2].include?(args.size)
7 allow_empty_metadata = args[1]
8 module_path = function_get_module_path([mod])
9 metadata_json = File.join(module_path, 'metadata.json')
11 metadata_exists = File.exists?(metadata_json)
13 metadata = PSON.load(File.read(metadata_json))
15 if allow_empty_metadata
18 raise(Puppet::ParseError, "load_module_metadata(): No metadata.json file for module #{mod}")