Sha256: 0209a1d8ce7a2eb73020fda8ea3b910c9d7606a181f91bd9eefbce6410381783

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

#!/usr/bin/env ruby

require "json"

if ARGV[0].nil?
  abort("Error: Must provide a metadata.json file to parse")
end

metadata = ARGV[0]

f = File.read(metadata)

begin
  parsed = JSON.parse(f)
rescue
  abort("Error: Unable to parse json. There is a syntax error somewhere.")
end

# Fields required to be in metadata.json
# From: https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#write-a-metadatajson-file
error_state = false

required_fields = [ "name", "version", "author", "license", "summary", "source", "dependencies" ]

required_fields.each do |field|
  if parsed[field].nil?
    puts "Error: Required field '#{field}' not found in metadata.json."
    error_state = true
  end
end



# Depricated fields
# From: https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#write-a-metadatajson-file

deprecated_fields = ["types", "checksum"]

deprecated_fields.each do |field|
  if not parsed[field].nil?
    puts "Error: Deprecated field '#{field}' found in metadata.json."
    error_state = true
  end
end


if error_state
  abort("Errors found in metadata.json")
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
metadata-json-lint-0.0.1 bin/metadata-json-lint