diff --git a/Library/Homebrew/cask/lib/hbc/auditor.rb b/Library/Homebrew/cask/lib/hbc/auditor.rb index ee1b50938b75bb3a8a76fabac1d065ed2cc2b64b..d6846080bd63d1fb0ec8329dbae4cc8d1857db1c 100644 --- a/Library/Homebrew/cask/lib/hbc/auditor.rb +++ b/Library/Homebrew/cask/lib/hbc/auditor.rb @@ -1,20 +1,22 @@ module Hbc class Auditor def self.audit(cask, audit_download: false, check_token_conflicts: false) - saved_languages = MacOS.instance_variable_get(:@languages) - if languages_blocks = cask.instance_variable_get(:@dsl).instance_variable_get(:@language_blocks) - languages_blocks.keys.each do |languages| - 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) - CLI::Cleanup.run(cask.token) if audit_download + begin + saved_languages = MacOS.instance_variable_get(:@languages) + + languages_blocks.keys.map { |languages| + ohai "Auditing language: #{languages.map { |lang| "'#{lang}'" }.join(", ")}" + MacOS.instance_variable_set(:@languages, languages) + CLI::Cleanup.run(cask.token) if audit_download + audit_cask_instance(Hbc.load(cask.sourcefile_path), audit_download, check_token_conflicts) + }.all? + ensure + MacOS.instance_variable_set(:@languages, saved_languages) end else audit_cask_instance(cask, audit_download, check_token_conflicts) end - ensure - MacOS.instance_variable_set(:@languages, saved_languages) end def self.audit_cask_instance(cask, audit_download, check_token_conflicts)