aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorXu Cheng2015-06-08 19:13:05 +0800
committerXu Cheng2015-06-11 15:28:29 +0800
commit787934ed6fcf1f0b7a6240f8daf6d8908cf09650 (patch)
treec7446b227bddd40d4637a5e21f181d5829574b73 /Library/Homebrew
parent44383fecb865014142c8934eacf2c90837a5b57c (diff)
downloadbrew-787934ed6fcf1f0b7a6240f8daf6d8908cf09650.tar.bz2
add brew tap-info
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cmd/tap-info.rb59
1 files changed, 59 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/tap-info.rb b/Library/Homebrew/cmd/tap-info.rb
new file mode 100644
index 000000000..e05b9eb08
--- /dev/null
+++ b/Library/Homebrew/cmd/tap-info.rb
@@ -0,0 +1,59 @@
+require "cmd/tap"
+
+module Homebrew
+ def tap_info
+ if ARGV.include? "--installed"
+ taps = Tap
+ else
+ taps = ARGV.named.map do |name|
+ Tap.new(*tap_args(name))
+ end
+ end
+
+ if ARGV.json == "v1"
+ print_tap_json(taps)
+ else
+ print_tap_info(taps)
+ end
+ end
+
+ private
+
+ def print_tap_info(taps)
+ if taps.none?
+ tap_count = 0
+ formula_count = 0
+ command_count = 0
+ Tap.each do |tap|
+ tap_count += 1
+ formula_count += tap.formula_files.size
+ command_count += tap.command_files.size
+ end
+ info = "#{tap_count} tap#{plural(tap_count)}"
+ info += ", #{formula_count} formula#{plural(formula_count, "e")}"
+ info += ", #{command_count} command#{plural(command_count)}"
+ info += ", #{Tap::TAP_DIRECTORY.abv}" if Tap::TAP_DIRECTORY.directory?
+ puts info
+ else
+ taps.each_with_index do |tap, i|
+ puts unless i == 0
+ info = "#{tap}: "
+ if tap.installed?
+ formula_count = tap.formula_files.size
+ info += "#{formula_count} formula#{plural(formula_count, "e")} " if formula_count > 0
+ command_count = tap.command_files.size
+ info += "#{command_count} command#{plural(command_count)} " if command_count > 0
+ info += "\n#{tap.path} (#{tap.path.abv})"
+ else
+ info += "Not installed"
+ end
+ puts info
+ puts "From: #{tap.remote}"
+ end
+ end
+ end
+
+ def print_tap_json(taps)
+ puts Utils::JSON.dump(taps.map(&:to_hash))
+ end
+end