diff options
| author | Xu Cheng | 2015-06-08 19:13:05 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-06-11 15:28:29 +0800 |
| commit | 787934ed6fcf1f0b7a6240f8daf6d8908cf09650 (patch) | |
| tree | c7446b227bddd40d4637a5e21f181d5829574b73 /Library/Homebrew | |
| parent | 44383fecb865014142c8934eacf2c90837a5b57c (diff) | |
| download | brew-787934ed6fcf1f0b7a6240f8daf6d8908cf09650.tar.bz2 | |
add brew tap-info
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/cmd/tap-info.rb | 59 |
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 |
