mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
57 lines
1.2 KiB
Ruby
57 lines
1.2 KiB
Ruby
module Hbc
|
|
class CLI
|
|
class Audit < Base
|
|
def self.help
|
|
"verifies installability of Casks"
|
|
end
|
|
|
|
def self.run(*args)
|
|
failed_casks = new(args, Auditor).run
|
|
return if failed_casks.empty?
|
|
raise CaskError, "audit failed for casks: #{failed_casks.join(" ")}"
|
|
end
|
|
|
|
def initialize(args, auditor)
|
|
@args = args
|
|
@auditor = auditor
|
|
end
|
|
|
|
def run
|
|
casks_to_audit.each_with_object([]) do |cask, failed|
|
|
failed << cask unless audit(cask)
|
|
end
|
|
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| Hbc.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
|