2016-09-24 13:52:43 +02:00
|
|
|
module Hbc
|
|
|
|
class Auditor
|
|
|
|
def self.audit(cask, audit_download: false, check_token_conflicts: false)
|
2016-10-11 15:10:12 +02:00
|
|
|
if !ARGV.value("language") &&
|
2016-10-14 20:33:16 +02:00
|
|
|
languages_blocks = cask.instance_variable_get(:@dsl).instance_variable_get(:@language_blocks)
|
2016-10-03 10:23:30 +02:00
|
|
|
begin
|
|
|
|
saved_languages = MacOS.instance_variable_get(:@languages)
|
|
|
|
|
2016-10-23 14:44:14 +02:00
|
|
|
languages_blocks.keys.map do |languages|
|
2016-10-03 10:23:30 +02:00
|
|
|
ohai "Auditing language: #{languages.map { |lang| "'#{lang}'" }.join(", ")}"
|
|
|
|
MacOS.instance_variable_set(:@languages, languages)
|
|
|
|
audit_cask_instance(Hbc.load(cask.sourcefile_path), audit_download, check_token_conflicts)
|
2016-10-11 15:10:12 +02:00
|
|
|
CLI::Cleanup.run(cask.token) if audit_download
|
2016-10-23 14:44:14 +02:00
|
|
|
end.all?
|
2016-10-03 10:23:30 +02:00
|
|
|
ensure
|
|
|
|
MacOS.instance_variable_set(:@languages, saved_languages)
|
2016-09-25 22:47:31 +02:00
|
|
|
end
|
|
|
|
else
|
|
|
|
audit_cask_instance(cask, audit_download, check_token_conflicts)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.audit_cask_instance(cask, audit_download, check_token_conflicts)
|
2016-09-24 13:52:43 +02:00
|
|
|
download = audit_download && Download.new(cask)
|
|
|
|
audit = Audit.new(cask, download: download,
|
|
|
|
check_token_conflicts: check_token_conflicts)
|
|
|
|
audit.run!
|
|
|
|
puts audit.summary
|
|
|
|
audit.success?
|
|
|
|
end
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
end
|