From 8939857600c58e6e2134fad51cc4de2d69fd6dc3 Mon Sep 17 00:00:00 2001 From: Colin Dean Date: Mon, 11 Nov 2013 14:15:46 +0000 Subject: [PATCH] info: decorate deps to show installed status? * shows green tick if installed or red cross if not * only highlight dependency if HOMEBREW_NO_EMOJI is set Closes Homebrew/homebrew#18922. Signed-off-by: Mike McQuaid --- Library/Homebrew/cmd/info.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 3180c60b6e..7818f788db 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -122,7 +122,7 @@ module Homebrew extend self ohai "Dependencies" %w{build required recommended optional}.map do |type| deps = f.deps.send(type) - puts "#{type.capitalize}: #{deps*', '}" unless deps.empty? + puts "#{type.capitalize}: #{decorate_dependencies deps}" unless deps.empty? end end @@ -136,6 +136,21 @@ module Homebrew extend self ohai 'Caveats', c.caveats unless c.empty? end + def decorate_dependencies dependencies + # necessary for 1.8.7 unicode handling since many installs are on 1.8.7 + tick = Tty.green + ["2714".hex].pack("U*") + Tty.reset + cross = Tty.red + ["2718".hex].pack("U*") + Tty.reset + + deps_status = dependencies.collect do |dep| + if ENV['HOMEBREW_NO_EMOJI'] + "%s%s%s" % [(dep.installed? ? Tty.green : Tty.red), dep, Tty.reset] + else + "%s %s" % [dep, (dep.installed? ? tick : cross)] + end + end + deps_status * ", " + end + private def valid_url u