From 72d83adaf379d69f3b353a55acff7dc9e30a5656 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 21 Apr 2014 09:40:24 -0500 Subject: [PATCH] Adjust link command for updated error handling --- Library/Homebrew/cmd/link.rb | 42 +++++++++--------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/Library/Homebrew/cmd/link.rb b/Library/Homebrew/cmd/link.rb index 840ad53535..ff39ce8690 100644 --- a/Library/Homebrew/cmd/link.rb +++ b/Library/Homebrew/cmd/link.rb @@ -32,9 +32,16 @@ module Homebrew extend self end keg.lock do - print "Linking #{keg}... " do - puts if ARGV.verbose? - puts "#{keg.link(mode)} symlinks created" + print "Linking #{keg}... " + puts if ARGV.verbose? + + begin + n = keg.link(mode) + rescue Keg::LinkError + puts + raise + else + puts "#{n} symlinks created" end end end @@ -47,33 +54,4 @@ module Homebrew extend self rescue FormulaUnavailableError false end - - # Allows us to ensure a puts happens before the block exits so that if say, - # an exception is thrown, its output starts on a new line. - def print str, &block - Kernel.print str - - STDERR.extend Module.new { - def puts(*args) - unless $did_puts - STDOUT.puts - $did_puts = true - end - super - end - } - - puts_capture = Class.new do - def self.puts(*args) - $did_puts = true - Kernel.puts(*args) - end - end - - puts_capture.instance_eval(&block) - - ensure - puts unless $did_puts - end - end