aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2012-03-15 10:57:34 +1300
committerMike McQuaid2012-03-29 18:44:37 +1100
commit48a82e5f023bfc3605306156d7eaa4e029d2d8ea (patch)
tree2c83c0be983a12bf2874e6cc2e911186c478b5fb
parentc6d37fb2372e75108edfb6b036fe0a773cd38213 (diff)
downloadhomebrew-48a82e5f023bfc3605306156d7eaa4e029d2d8ea.tar.bz2
Exit with bad exit code on command failures.
-rwxr-xr-xLibrary/Homebrew/cmd/audit.rb2
-rwxr-xr-xLibrary/Homebrew/cmd/bottle.rb12
-rw-r--r--Library/Homebrew/cmd/doctor.rb9
-rw-r--r--Library/Homebrew/cmd/install.rb1
-rw-r--r--Library/Homebrew/cmd/test.rb5
-rw-r--r--Library/Homebrew/cmd/uninstall.rb1
-rw-r--r--Library/Homebrew/cmd/upgrade.rb2
-rw-r--r--Library/Homebrew/global.rb3
-rwxr-xr-xbin/brew2
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]
diff --git a/bin/brew b/bin/brew
index df0c45d4f..eba542724 100755
--- a/bin/brew
+++ b/bin/brew
@@ -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