dylib_to_dep: use Regexp

This commit is contained in:
Maxim Belkin 2018-03-20 10:06:52 -05:00
parent 1501354ee7
commit 81042c63fb
No known key found for this signature in database
GPG Key ID: AC71560D4C5F2338

View File

@ -22,7 +22,11 @@ class LinkageChecker
end end
def dylib_to_dep(dylib) def dylib_to_dep(dylib)
dylib.sub("#{HOMEBREW_PREFIX}/opt/", "").sub("#{HOMEBREW_CELLAR}/", "").split("/")[0] if dylib =~ %r{#{Regexp.escape(HOMEBREW_PREFIX)}/(opt|Cellar)/([\w+-.@]+)/}
Regexp.last_match(2)
else
"Not a Homebrew library"
end
end end
def check_dylibs def check_dylibs
@ -90,13 +94,7 @@ class LinkageChecker
next true if Formula[name].bin.directory? next true if Formula[name].bin.directory?
@brewed_dylibs.keys.map { |x| x.split("/").last }.include?(name) @brewed_dylibs.keys.map { |x| x.split("/").last }.include?(name)
end end
missing = Set.new unnecessary_deps -= @broken_dylibs.map { |_, v| v.map { |d| dylib_to_dep(d) } }.flatten
@broken_dylibs.each_value do |value|
value.each do |str|
missing << dylib_to_dep(str) if str.start_with?("#{HOMEBREW_PREFIX}/opt", HOMEBREW_CELLAR)
end
end
unnecessary_deps -= missing.to_a
[indirect_deps, undeclared_deps, unnecessary_deps] [indirect_deps, undeclared_deps, unnecessary_deps]
end end