mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

Ensure that a non-zero exit code is set both for missing random dylibs and random missing dependencies. Additionally, while we are here, drastically trim down the public interface for this class to the bare minimum and allow getting the output from `display_test_output` as a variable. Fixes issue mentioned by @ilovezfs in: https://github.com/Homebrew/brew/pull/3940#issuecomment-383794520
33 lines
985 B
Ruby
33 lines
985 B
Ruby
#: * `linkage` [`--test`] [`--reverse`] <formula>:
|
|
#: Checks the library links of an installed formula.
|
|
#:
|
|
#: Only works on installed formulae. An error is raised if it is run on
|
|
#: uninstalled formulae.
|
|
#:
|
|
#: If `--test` is passed, only display missing libraries and exit with a
|
|
#: non-zero exit code if any missing libraries were found.
|
|
#:
|
|
#: If `--reverse` is passed, print the dylib followed by the binaries
|
|
#: which link to it for each library the keg references.
|
|
|
|
require "linkage_checker"
|
|
|
|
module Homebrew
|
|
module_function
|
|
|
|
def linkage
|
|
ARGV.kegs.each do |keg|
|
|
ohai "Checking #{keg.name} linkage" if ARGV.kegs.size > 1
|
|
result = LinkageChecker.new(keg)
|
|
if ARGV.include?("--test")
|
|
result.display_test_output
|
|
Homebrew.failed = true if result.broken_library_linkage?
|
|
elsif ARGV.include?("--reverse")
|
|
result.display_reverse_output
|
|
else
|
|
result.display_normal_output
|
|
end
|
|
end
|
|
end
|
|
end
|