91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/pdk/module/metadata.rb', line 91
def self.from_file(metadata_json_path)
if metadata_json_path.nil?
raise ArgumentError, _('Cannot read metadata from file: no path to file was given.')
end
unless PDK::Util::Filesystem.file?(metadata_json_path)
raise ArgumentError, _("'%{file}' does not exist or is not a file.") % { file: metadata_json_path }
end
unless PDK::Util::Filesystem.readable?(metadata_json_path)
raise ArgumentError, _("Unable to open '%{file}' for reading.") % { file: metadata_json_path }
end
require 'json'
begin
data = JSON.parse(PDK::Util::Filesystem.read_file(metadata_json_path))
rescue JSON::JSONError => e
raise ArgumentError, _('Invalid JSON in metadata.json: %{msg}') % { msg: e.message }
end
data['template-url'] = PDK::Util::TemplateURI.default_template_uri.metadata_format if PDK::Util.package_install? && data['template-url'] == PDK::Util::TemplateURI::PACKAGED_TEMPLATE_KEYWORD
new(data)
end
|