diff options
| author | Markus Reiter | 2016-09-25 22:47:31 +0200 |
|---|---|---|
| committer | Markus Reiter | 2016-10-03 02:34:53 +0200 |
| commit | bc143bb4701eb4f5fdcd19036b9232a32f4e52ae (patch) | |
| tree | ac0262eb4f65aa6b5c4023b4fba943d89a313623 /Library/Homebrew | |
| parent | bc2d676b6f590d0ddd2987699624f6718384b641 (diff) | |
| download | brew-bc143bb4701eb4f5fdcd19036b9232a32f4e52ae.tar.bz2 | |
Support `audit` for multilingual casks.
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/auditor.rb | 18 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/dsl.rb | 9 |
2 files changed, 25 insertions, 2 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/auditor.rb b/Library/Homebrew/cask/lib/hbc/auditor.rb index 6b0c1c476..7a6bb608f 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 bae395726..9970f8395 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 |
