aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/exceptions.rb
diff options
context:
space:
mode:
authorMike McQuaid2017-04-18 08:43:39 +0100
committerMike McQuaid2017-04-18 08:43:39 +0100
commit1330b7441676da82ae89591b5d60e2e3f7b8ebe2 (patch)
treefca0fa057bd11a34ef9bb9d41bcad230f641050e /Library/Homebrew/exceptions.rb
parent417f49dd32bfe555b20f3f7d88e2739f6623991b (diff)
downloadbrew-1330b7441676da82ae89591b5d60e2e3f7b8ebe2.tar.bz2
install: don't search when formula is unreadable.
These formulae are detected as missing but exist in an unreadable form. Fixes #2485
Diffstat (limited to 'Library/Homebrew/exceptions.rb')
-rw-r--r--Library/Homebrew/exceptions.rb84
1 files changed, 57 insertions, 27 deletions
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb
index cfdf5e12d..6751b2224 100644
--- a/Library/Homebrew/exceptions.rb
+++ b/Library/Homebrew/exceptions.rb
@@ -77,35 +77,11 @@ class FormulaUnavailableError < RuntimeError
end
end
-class TapFormulaUnavailableError < FormulaUnavailableError
- attr_reader :tap, :user, :repo
-
- def initialize(tap, name)
- @tap = tap
- @user = tap.user
- @repo = tap.repo
- super "#{tap}/#{name}"
- end
-
- def to_s
- s = super
- s += "\nPlease tap it and then try again: brew tap #{tap}" unless tap.installed?
- s
- end
-end
-
-class FormulaClassUnavailableError < FormulaUnavailableError
+module FormulaClassUnavailableErrorModule
attr_reader :path
attr_reader :class_name
attr_reader :class_list
- def initialize(name, path, class_name, class_list)
- @path = path
- @class_name = class_name
- @class_list = class_list
- super name
- end
-
def to_s
s = super
s += "\nIn formula file: #{path}"
@@ -131,16 +107,70 @@ class FormulaClassUnavailableError < FormulaUnavailableError
end
end
-class FormulaUnreadableError < FormulaUnavailableError
+class FormulaClassUnavailableError < FormulaUnavailableError
+ include FormulaClassUnavailableErrorModule
+
+ def initialize(name, path, class_name, class_list)
+ @path = path
+ @class_name = class_name
+ @class_list = class_list
+ super name
+ end
+end
+
+module FormulaUnreadableErrorModule
attr_reader :formula_error
+ def to_s
+ "#{name}: " + formula_error.to_s
+ end
+end
+
+class FormulaUnreadableError < FormulaUnavailableError
+ include FormulaUnreadableErrorModule
+
def initialize(name, error)
super(name)
@formula_error = error
end
+end
+
+class TapFormulaUnavailableError < FormulaUnavailableError
+ attr_reader :tap, :user, :repo
+
+ def initialize(tap, name)
+ @tap = tap
+ @user = tap.user
+ @repo = tap.repo
+ super "#{tap}/#{name}"
+ end
def to_s
- "#{name}: " + formula_error.to_s
+ s = super
+ s += "\nPlease tap it and then try again: brew tap #{tap}" unless tap.installed?
+ s
+ end
+end
+
+class TapFormulaClassUnavailableError < TapFormulaUnavailableError
+ include FormulaClassUnavailableErrorModule
+
+ attr_reader :tap
+
+ def initialize(tap, name, path, class_name, class_list)
+ @path = path
+ @class_name = class_name
+ @class_list = class_list
+ super tap, name
+ end
+end
+
+class TapFormulaUnreadableError < TapFormulaUnavailableError
+ include FormulaUnreadableErrorModule
+
+ def initialize(tap, name, error)
+ super(tap, name)
+ @formula_error = error
end
end