2017-05-22 02:51:17 +02:00

57 lines
1.2 KiB
Ruby

module Hbc
class CLI
class Audit < AbstractCommand
def self.help
"verifies installability of Casks"
end
def initialize(*args, auditor: Auditor)
@args = args
@auditor = auditor
end
def run
failed_casks = []
casks_to_audit.each do |cask|
next if audit(cask)
failed_casks << cask
end
return if failed_casks.empty?
raise CaskError, "audit failed for casks: #{failed_casks.join(" ")}"
end
def audit(cask)
odebug "Auditing Cask #{cask}"
@auditor.audit(cask, audit_download: audit_download?,
check_token_conflicts: check_token_conflicts?)
end
def audit_download?
@args.include?("--download")
end
def check_token_conflicts?
@args.include?("--token-conflicts")
end
def casks_to_audit
if cask_tokens.empty?
Hbc.all
else
cask_tokens.map { |token| CaskLoader.load(token) }
end
end
def cask_tokens
@cask_tokens ||= self.class.cask_tokens_from(@args)
end
def self.needs_init?
true
end
end
end
end