Merge pull request #4410 from alexbostock/cask-json

Cask json
This commit is contained in:
Mike McQuaid 2018-07-17 17:17:06 +01:00 committed by GitHub
commit 86df821b92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 3 deletions

View File

@ -129,5 +129,32 @@ module Hbc
odebug "Cask instance method '#{method}':", send(method).to_yaml odebug "Cask instance method '#{method}':", send(method).to_yaml
end end
end end
def to_h
{
"name" => name,
"homepage" => homepage,
"url" => url,
"appcast" => appcast,
"version" => version,
"sha256" => sha256,
"artifacts" => artifacts.map do |a|
if a.respond_to? :to_h
a.to_h
elsif a.respond_to? :to_a
a.to_a
else
a
end
end,
"caveats" => caveats,
"depends_on" => depends_on,
"conflicts_with" => conflicts_with.to_a,
"container" => container,
"gpg" => gpg,
"accessibility_access" => accessibility_access,
"auto_updates" => auto_updates,
}
end
end end
end end

View File

@ -1,15 +1,23 @@
require "json"
module Hbc module Hbc
class CLI class CLI
class Info < AbstractCommand class Info < AbstractCommand
option "--json=VERSION", :json
def initialize(*) def initialize(*)
super super
raise CaskUnspecifiedError if args.empty? raise CaskUnspecifiedError if args.empty?
end end
def run def run
casks.each do |cask| if json == "v1"
odebug "Getting info for Cask #{cask}" puts JSON.generate(casks.map(&:to_h))
self.class.info(cask) else
casks.each do |cask|
odebug "Getting info for Cask #{cask}"
self.class.info(cask)
end
end end
end end