Method: PDK::Module::Metadata.from_file

Defined in:
lib/pdk/module/metadata.rb

.from_file(metadata_json_path) ⇒ Object



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()
  if .nil?
    raise ArgumentError, _('Cannot read metadata from file: no path to file was given.')
  end

  unless PDK::Util::Filesystem.file?()
    raise ArgumentError, _("'%{file}' does not exist or is not a file.") % { file:  }
  end

  unless PDK::Util::Filesystem.readable?()
    raise ArgumentError, _("Unable to open '%{file}' for reading.") % { file:  }
  end

  require 'json'
  begin
    data = JSON.parse(PDK::Util::Filesystem.read_file())
  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. if PDK::Util.package_install? && data['template-url'] == PDK::Util::TemplateURI::PACKAGED_TEMPLATE_KEYWORD
  new(data)
end