Add custom exception for untapped formulae

This commit is contained in:
Jack Nagel 2014-02-28 15:58:20 -06:00
parent 751d997202
commit 3872f78d66
2 changed files with 20 additions and 9 deletions

View File

@ -39,22 +39,31 @@ class FormulaUnavailableError < RuntimeError
attr_reader :name
attr_accessor :dependent
def initialize name
@name = name
end
def dependent_s
"(dependency of #{dependent})" if dependent and dependent != name
end
def to_s
if name =~ HOMEBREW_TAP_FORMULA_REGEX then <<-EOS.undent
No available formula for #$3 #{dependent_s}
Please tap it and then try again: brew tap #$1/#$2
EOS
else
"No available formula for #{name} #{dependent_s}"
end
"No available formula for #{name} #{dependent_s}"
end
end
class TapFormulaUnavailableError < FormulaUnavailableError
attr_reader :user, :repo, :shortname
def initialize name
@name = name
super
@user, @repo, @shortname = name.split("/", 3)
end
def to_s; <<-EOS.undent
No available formula for #{shortname} #{dependent_s}
Please tap it and then try again: brew tap #{user}/#{repo}
EOS
end
end

View File

@ -155,7 +155,9 @@ class Formulary
end
def get_formula
klass.new(tapped_name, path)
klass.new(name, path)
rescue FormulaUnavailableError => e
raise TapFormulaUnavailableError.new(e.name)
end
end