Merge pull request #4117 from MikeMcQuaid/linkage-checker-multiple-taps

linkage_checker: correctly handle multiple taps.
This commit is contained in:
Mike McQuaid 2018-04-28 18:54:53 +01:00 committed by GitHub
commit d8490b0995
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -111,8 +111,12 @@ class LinkageChecker
formula.build.without?(dep) formula.build.without?(dep)
end end
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name) declared_deps_full_names = formula.deps
declared_dep_names = declared_deps.map { |dep| dep.split("/").last } .reject { |dep| filter_out.call(dep) }
.map(&:name)
declared_deps_names = declared_deps_full_names.map do |dep|
dep.split("/").last
end
recursive_deps = formula.declared_runtime_dependencies.map do |dep| recursive_deps = formula.declared_runtime_dependencies.map do |dep|
begin begin
dep.to_formula.name dep.to_formula.name
@ -127,7 +131,7 @@ class LinkageChecker
name = full_name.split("/").last name = full_name.split("/").last
next if name == formula.name next if name == formula.name
if recursive_deps.include?(name) if recursive_deps.include?(name)
indirect_deps << full_name unless declared_dep_names.include?(name) indirect_deps << full_name unless declared_deps_names.include?(name)
else else
undeclared_deps << full_name undeclared_deps << full_name
end end
@ -136,9 +140,9 @@ class LinkageChecker
sort_by_formula_full_name!(indirect_deps) sort_by_formula_full_name!(indirect_deps)
sort_by_formula_full_name!(undeclared_deps) sort_by_formula_full_name!(undeclared_deps)
unnecessary_deps = declared_dep_names.reject do |full_name| unnecessary_deps = declared_deps_full_names.reject do |full_name|
next true if Formula[full_name].bin.directory?
name = full_name.split("/").last name = full_name.split("/").last
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