make `brew cask audit` return error code on fail

Per report in #3655
This commit is contained in:
Roland Walker 2014-03-25 09:09:49 -04:00
parent c9e18aeaab
commit f1620a56f5
3 changed files with 15 additions and 3 deletions

View File

@ -16,6 +16,7 @@ class Cask::Audit
_check_no_checksums_if_latest
_check_sourceforge_download_url_format
_check_download(download) if download
return !(errors? or warnings?)
end
def summary_header

View File

@ -2,12 +2,13 @@ class Cask::Auditor
def self.audit(cask, options = {})
audit = Cask::Audit.new(cask)
if options.fetch(:audit_download, false)
retval = if options.fetch(:audit_download, false)
audit.run!(Cask::Download.new(cask))
else
audit.run!
end
puts audit.summary
retval
end
end

View File

@ -4,7 +4,13 @@ class Cask::CLI::Audit
end
def self.run(*args)
new(args, Cask::Auditor).run
retval = new(args, Cask::Auditor).run
# retval is ternary: true/false/nil
if retval.nil?
raise CaskError.new("audit failed")
elsif ! retval
raise CaskError.new("some audits failed")
end
end
def initialize(args, auditor)
@ -13,7 +19,11 @@ class Cask::CLI::Audit
end
def run
casks_to_audit.each { |cask| audit(cask) }
count = 0
casks_to_audit.each do |cask|
count += 1 if audit(cask)
end
count == 0 ? nil : count == casks_to_audit.length
end
def audit(cask)