From 7080ad5ebc58a472c6159c3218c273ee047a3d39 Mon Sep 17 00:00:00 2001 From: Maxim Belkin Date: Tue, 21 Jul 2020 12:50:22 +0000 Subject: [PATCH] formula.rb: update missing libs feature 1. Raise an exception on macOS. 2. Verify that the missing libraries are specified either as Strings or Regular Expressions. Signed-off-by: Maxim Belkin --- Library/Homebrew/extend/os/linux/formula.rb | 12 +++++++++--- Library/Homebrew/formula.rb | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/extend/os/linux/formula.rb b/Library/Homebrew/extend/os/linux/formula.rb index 12b28db2a0..f633b52416 100644 --- a/Library/Homebrew/extend/os/linux/formula.rb +++ b/Library/Homebrew/extend/os/linux/formula.rb @@ -19,7 +19,7 @@ class Formula when Regexp x.match? lib when String - lib.include? x + lib.to_s.include? x end end end @@ -31,9 +31,15 @@ class Formula yield end + undef ignore_missing_libraries + def ignore_missing_libraries(*libs) - libs.flatten! - allowed_missing_libraries.merge(libs) + libraries = libs.flatten + unless libraries.all? { |x| x.is_a?(String) || x.is_a?(Regexp) } + raise FormulaSpecificationError, "#{__method__} can handle Strings and Regular Expressions only" + end + + allowed_missing_libraries.merge(libraries) end # @private diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 06084522f6..834b6ab4ea 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -2763,6 +2763,10 @@ class Formula def link_overwrite_paths @link_overwrite_paths ||= Set.new end + + def ignore_missing_libraries(*) + raise FormulaSpecificationError, "#{__method__} is available on Linux only" + end end end