diff options
| author | Mike McQuaid | 2017-04-18 08:43:39 +0100 | 
|---|---|---|
| committer | Mike McQuaid | 2017-04-18 08:43:39 +0100 | 
| commit | 1330b7441676da82ae89591b5d60e2e3f7b8ebe2 (patch) | |
| tree | fca0fa057bd11a34ef9bb9d41bcad230f641050e /Library/Homebrew/exceptions.rb | |
| parent | 417f49dd32bfe555b20f3f7d88e2739f6623991b (diff) | |
| download | brew-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.rb | 84 | 
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 | 
