diff options
| -rwxr-xr-x | Library/Homebrew/cmd/audit.rb | 2 | ||||
| -rwxr-xr-x | Library/Homebrew/cmd/bottle.rb | 12 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/doctor.rb | 9 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/install.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/test.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/uninstall.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/upgrade.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/global.rb | 3 | ||||
| -rwxr-xr-x | bin/brew | 2 | 
9 files changed, 27 insertions, 10 deletions
| diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb index 8c604ba56..84054925c 100755 --- a/Library/Homebrew/cmd/audit.rb +++ b/Library/Homebrew/cmd/audit.rb @@ -420,7 +420,7 @@ module Homebrew extend self      if errors        puts "#{problem_count} problems in #{brew_count} brews" -      exit 1 +      Homebrew.failed = true      end    end  end diff --git a/Library/Homebrew/cmd/bottle.rb b/Library/Homebrew/cmd/bottle.rb index b226d3c37..604df4503 100755 --- a/Library/Homebrew/cmd/bottle.rb +++ b/Library/Homebrew/cmd/bottle.rb @@ -4,8 +4,16 @@ require 'tab'  module Homebrew extend self    def bottle_formula f -    return onoe "Formula not installed: #{f.name}" unless f.installed? -    return onoe "Formula not installed with '--build-bottle': #{f.name}" unless built_bottle? f +    unless f.installed? +      onoe "Formula not installed: #{f.name}" +      Homebrew.failed = true +      return +    end + +    unless built_bottle? f +      onoe "Formula not installed with '--build-bottle': #{f.name}" +      Homebrew.failed = true +    end      directory = Pathname.pwd      filename = bottle_filename f diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index a8f85d444..632819e96 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -879,22 +879,19 @@ end # end class Checks  module Homebrew extend self    def doctor -    raring_to_brew = true -      checks = Checks.new      checks.methods.select{ |method| method =~ /^check_/ }.sort.each do |method|        out = checks.send(method)        unless out.nil? or out.empty? -        puts unless raring_to_brew +        puts unless Homebrew.failed?          lines = out.to_s.split('\n')          opoo lines.shift          puts lines -        raring_to_brew = false +        Homebrew.failed = true        end      end -    puts "Your system is raring to brew." if raring_to_brew -    exit raring_to_brew ? 0 : 1 +    puts "Your system is raring to brew." unless Homebrew.failed?    end  end diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index e4ffe3268..ed5826da0 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -77,6 +77,7 @@ module Homebrew extend self            fi.finish          rescue CannotInstallFormulaError => e            onoe e.message +          Homebrew.failed = true          end        end      end diff --git a/Library/Homebrew/cmd/test.rb b/Library/Homebrew/cmd/test.rb index 9b3e93adf..af774f7e6 100644 --- a/Library/Homebrew/cmd/test.rb +++ b/Library/Homebrew/cmd/test.rb @@ -13,21 +13,24 @@ module Homebrew extend self        # Cannot test uninstalled formulae        unless f.installed?          puts "#{f.name} not installed" +        Homebrew.failed = true          next        end        # Cannot test formulae without a test method        unless f.respond_to? :test          puts "#{f.name} defines no test" +        Homebrew.failed = true          next        end        puts "Testing #{f.name}"        begin          # tests can also return false to indicate failure -        puts "#{f.name}: failed" if f.test == false +        raise if f.test == false        rescue          puts "#{f.name}: failed" +        Homebrew.failed = true        end      end    end diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index cddb8ac65..ce719a3e9 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -35,5 +35,6 @@ module Homebrew extend self    rescue MultipleVersionsInstalledError => e      onoe e      puts "Use `brew remove --force #{e.name}` to remove all versions." +    Homebrew.failed = true    end  end diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index 671188a3c..7b63e8039 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -67,9 +67,11 @@ module Homebrew extend self      installer.finish    rescue CannotInstallFormulaError => e      onoe e +    Homebrew.failed = true    rescue BuildError => e      e.dump      puts +    Homebrew.failed = true    ensure      # restore previous installation state if build failed      outdated_keg.link if outdated_keg and not f.installed? rescue nil diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index b29ab0ff9..92560859c 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -79,6 +79,9 @@ HOMEBREW_CURL_ARGS = '-qf#LA'  require 'fileutils'  module Homebrew extend self    include FileUtils + +  attr_accessor :failed +  alias_method :failed?, :failed  end  FORMULA_META_FILES = %w[README README.md ChangeLog CHANGES COPYING LICENSE LICENCE COPYRIGHT AUTHORS] @@ -112,4 +112,6 @@ rescue Exception => e    puts "    #{Tty.em}#{ISSUES_URL}#{Tty.reset}"    puts e.backtrace    exit 1 +else +  exit 1 if Homebrew.failed?  end | 
