From d9ed121c4667c913b4bb8a664c54b2285f5a3046 Mon Sep 17 00:00:00 2001 From: Adam Vandenberg Date: Fri, 16 May 2014 08:47:09 -0700 Subject: add --installed to json info Closes Homebrew/homebrew#29315. --- Library/Contributions/brew_bash_completion.sh | 2 +- Library/Contributions/manpages/brew.1.md | 5 ++++- Library/Homebrew/cmd/info.rb | 10 ++++++++-- Library/Homebrew/formula.rb | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) (limited to 'Library') diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh index 61c81361f..7d3fc595f 100644 --- a/Library/Contributions/brew_bash_completion.sh +++ b/Library/Contributions/brew_bash_completion.sh @@ -222,7 +222,7 @@ _brew_info () local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) - __brewcomp "--all --github --json=v1" + __brewcomp "--all --github --installed --json=v1" return ;; esac diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md index 563d072c2..21b839917 100644 --- a/Library/Contributions/manpages/brew.1.md +++ b/Library/Contributions/manpages/brew.1.md @@ -160,10 +160,13 @@ Note that these flags should only appear after a command. To view formula history locally: `brew log -p `. - * `info --json=` : + * `info --json=` (--all|--installed|): Print a JSON representation of . Currently the only accepted value for is `v1`. + Pass `--all` to get information on all formulae, or `--installed` to get + information on all installed formulae. + * `install [--debug] [--env=] [--ignore-dependencies] [--only-dependencies] [--cc=] [--build-from-source] [--devel|--HEAD]` : Install . diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 9deda9dfb..ef8e2ac52 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -41,8 +41,14 @@ module Homebrew extend self end def print_json - formulae = ARGV.include?("--all") ? Formula : ARGV.formulae - json = formulae.map {|f| f.to_hash} + ff = if ARGV.include? "--all" + Formula + elsif ARGV.include? "--installed" + Formula.installed + else + ARGV.formulae + end + json = ff.map {|f| f.to_hash} if json.size == 1 puts Utils::JSON.dump(json.pop) else diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index d6a6f60e1..f0217bb74 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -369,6 +369,7 @@ class Formula include Enumerable end + # An array of all installed formulae def self.installed return [] unless HOMEBREW_CELLAR.directory? -- cgit v1.2.3