Exit with bad exit code on command failures.

This commit is contained in:
Mike McQuaid 2012-03-15 10:57:34 +13:00
parent 61444ee3a6
commit 0cbdeeaa3c
9 changed files with 27 additions and 10 deletions

View File

@ -420,7 +420,7 @@ module Homebrew extend self
if errors if errors
puts "#{problem_count} problems in #{brew_count} brews" puts "#{problem_count} problems in #{brew_count} brews"
exit 1 Homebrew.failed = true
end end
end end
end end

View File

@ -4,8 +4,16 @@ require 'tab'
module Homebrew extend self module Homebrew extend self
def bottle_formula f def bottle_formula f
return onoe "Formula not installed: #{f.name}" unless f.installed? unless f.installed?
return onoe "Formula not installed with '--build-bottle': #{f.name}" unless built_bottle? f 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 directory = Pathname.pwd
filename = bottle_filename f filename = bottle_filename f

View File

@ -879,22 +879,19 @@ end # end class Checks
module Homebrew extend self module Homebrew extend self
def doctor def doctor
raring_to_brew = true
checks = Checks.new checks = Checks.new
checks.methods.select{ |method| method =~ /^check_/ }.sort.each do |method| checks.methods.select{ |method| method =~ /^check_/ }.sort.each do |method|
out = checks.send(method) out = checks.send(method)
unless out.nil? or out.empty? unless out.nil? or out.empty?
puts unless raring_to_brew puts unless Homebrew.failed?
lines = out.to_s.split('\n') lines = out.to_s.split('\n')
opoo lines.shift opoo lines.shift
puts lines puts lines
raring_to_brew = false Homebrew.failed = true
end end
end end
puts "Your system is raring to brew." if raring_to_brew puts "Your system is raring to brew." unless Homebrew.failed?
exit raring_to_brew ? 0 : 1
end end
end end

View File

@ -77,6 +77,7 @@ module Homebrew extend self
fi.finish fi.finish
rescue CannotInstallFormulaError => e rescue CannotInstallFormulaError => e
onoe e.message onoe e.message
Homebrew.failed = true
end end
end end
end end

View File

@ -13,21 +13,24 @@ module Homebrew extend self
# Cannot test uninstalled formulae # Cannot test uninstalled formulae
unless f.installed? unless f.installed?
puts "#{f.name} not installed" puts "#{f.name} not installed"
Homebrew.failed = true
next next
end end
# Cannot test formulae without a test method # Cannot test formulae without a test method
unless f.respond_to? :test unless f.respond_to? :test
puts "#{f.name} defines no test" puts "#{f.name} defines no test"
Homebrew.failed = true
next next
end end
puts "Testing #{f.name}" puts "Testing #{f.name}"
begin begin
# tests can also return false to indicate failure # tests can also return false to indicate failure
puts "#{f.name}: failed" if f.test == false raise if f.test == false
rescue rescue
puts "#{f.name}: failed" puts "#{f.name}: failed"
Homebrew.failed = true
end end
end end
end end

View File

@ -35,5 +35,6 @@ module Homebrew extend self
rescue MultipleVersionsInstalledError => e rescue MultipleVersionsInstalledError => e
onoe e onoe e
puts "Use `brew remove --force #{e.name}` to remove all versions." puts "Use `brew remove --force #{e.name}` to remove all versions."
Homebrew.failed = true
end end
end end

View File

@ -67,9 +67,11 @@ module Homebrew extend self
installer.finish installer.finish
rescue CannotInstallFormulaError => e rescue CannotInstallFormulaError => e
onoe e onoe e
Homebrew.failed = true
rescue BuildError => e rescue BuildError => e
e.dump e.dump
puts puts
Homebrew.failed = true
ensure ensure
# restore previous installation state if build failed # restore previous installation state if build failed
outdated_keg.link if outdated_keg and not f.installed? rescue nil outdated_keg.link if outdated_keg and not f.installed? rescue nil

View File

@ -79,6 +79,9 @@ HOMEBREW_CURL_ARGS = '-qf#LA'
require 'fileutils' require 'fileutils'
module Homebrew extend self module Homebrew extend self
include FileUtils include FileUtils
attr_accessor :failed
alias_method :failed?, :failed
end end
FORMULA_META_FILES = %w[README README.md ChangeLog CHANGES COPYING LICENSE LICENCE COPYRIGHT AUTHORS] FORMULA_META_FILES = %w[README README.md ChangeLog CHANGES COPYING LICENSE LICENCE COPYRIGHT AUTHORS]

View File

@ -112,4 +112,6 @@ rescue Exception => e
puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}" puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}"
puts e.backtrace puts e.backtrace
exit 1 exit 1
else
exit 1 if Homebrew.failed?
end end