From 787934ed6fcf1f0b7a6240f8daf6d8908cf09650 Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Mon, 8 Jun 2015 19:13:05 +0800 Subject: [PATCH] add brew tap-info --- Library/Homebrew/cmd/tap-info.rb | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Library/Homebrew/cmd/tap-info.rb diff --git a/Library/Homebrew/cmd/tap-info.rb b/Library/Homebrew/cmd/tap-info.rb new file mode 100644 index 0000000000..e05b9eb089 --- /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