brew/Library/Homebrew/cmd/tap-info.rb

64 lines
1.7 KiB
Ruby
Raw Normal View History

2015-06-08 19:13:05 +08:00
require "cmd/tap"
module Homebrew
def tap_info
if ARGV.include? "--installed"
taps = Tap
else
taps = ARGV.named.map do |name|
Tap.fetch(*tap_args(name))
2015-06-08 19:13:05 +08:00
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
2015-07-22 18:07:30 +08:00
pinned_count = 0
2015-06-08 19:13:05 +08:00
Tap.each do |tap|
tap_count += 1
formula_count += tap.formula_files.size
command_count += tap.command_files.size
2015-07-22 18:07:30 +08:00
pinned_count += 1 if tap.pinned?
2015-06-08 19:13:05 +08:00
end
info = "#{tap_count} tap#{plural(tap_count)}"
2015-07-22 18:07:30 +08:00
info += ", #{pinned_count} pinned"
2015-06-08 19:13:05 +08:00
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?
2015-07-11 16:05:09 +08:00
info += tap.pinned? ? "pinned, " : "unpinned, "
2015-06-08 19:13:05 +08:00
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})"
info += "\nFrom: #{tap.remote.nil? ? "N/A" : tap.remote}"
2015-06-08 19:13:05 +08:00
else
info += "Not installed"
end
puts info
end
end
end
def print_tap_json(taps)
puts Utils::JSON.dump(taps.map(&:to_hash))
end
end