diff --git a/Library/Homebrew/cask/lib/hbc/auditor.rb b/Library/Homebrew/cask/lib/hbc/auditor.rb index 6b0c1c47643732d5875197bd2de6c25f8d541516..7a6bb608fe9b339482e07c0c9ff5d9973e5fa923 100644 --- a/Library/Homebrew/cask/lib/hbc/auditor.rb +++ b/Library/Homebrew/cask/lib/hbc/auditor.rb @@ -1,6 +1,24 @@ 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.map(&:first).each do |language| + ohai "Auditing language #{language.to_s}" + language = "en-US" if language == :default + MacOS.instance_variable_set(:@languages, [language]) + audit_cask_instance(Hbc.load(cask.sourcefile_path), audit_download, check_token_conflicts) + CLI::Cleanup.run(cask.token) if audit_download + 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) download = audit_download && Download.new(cask) audit = Audit.new(cask, download: download, check_token_conflicts: check_token_conflicts) diff --git a/Library/Homebrew/cask/lib/hbc/dsl.rb b/Library/Homebrew/cask/lib/hbc/dsl.rb index bae395726f3ca7859a329cb7a3f8a2d6378cc93b..9970f839547663ca37ed085b9aa173f3d09564ec 100644 --- a/Library/Homebrew/cask/lib/hbc/dsl.rb +++ b/Library/Homebrew/cask/lib/hbc/dsl.rb @@ -122,8 +122,13 @@ module Hbc regexes_or_strings = regexes_or_strings - [:default] + [%r{^en}] end - case language - when *regexes_or_strings + regexes_or_strings.each do |regex_or_string| + if regex_or_string.class == language.class + next unless regex_or_string == language + else + next unless regex_or_string =~ language + end + @language = block.call return end