From 2f2645e962974002bdd6e78111678bb2d5f9b389 Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Wed, 15 Aug 2012 22:08:40 -0500 Subject: info: Add JSON output Output JSON with the --json=v1 option. Output is in an array, and supports one or more formulae (or all, with the --all option). Why 'v1'? The format is unstable, presumably we'll deprecate it someday. It should be solid by Homebrew 1.0. Closes Homebrew/homebrew#13299.--- Library/Homebrew/cmd/info.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'Library/Homebrew/cmd') diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index c9040eac6..6fe43e687 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -4,6 +4,16 @@ require 'keg' module Homebrew extend self def info + # eventually we'll solidify an API, but we'll keep old versions + # awhile around for compatibility + if ARGV.json == "v1" + print_json + else + print_info + end + end + + def print_info if ARGV.named.empty? if ARGV.include? "--all" Formula.each do |f| @@ -20,6 +30,18 @@ module Homebrew extend self end end + def print_json + require 'vendor/multi_json' + + formulae = ARGV.include?("--all") ? Formula : ARGV.formulae + json = formulae.map {|f| f.to_hash} + if json.size == 1 + puts MultiJson.encode json.pop + else + puts MultiJson.encode json + end + end + def github_fork if which 'git' and (HOMEBREW_REPOSITORY/".git").directory? if `git remote -v` =~ %r{origin\s+(https?://|git(?:@|://))github.com[:/](.+)/homebrew} -- cgit v1.2.3