mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 07:59:02 +08:00
36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
# typed: strict
|
|
# frozen_string_literal: true
|
|
|
|
module Homebrew
|
|
module Fetch
|
|
sig {
|
|
params(
|
|
formula: Formula,
|
|
force_bottle: T::Boolean,
|
|
bottle_tag: T.nilable(Symbol),
|
|
build_from_source_formulae: T::Array[String],
|
|
os: T.nilable(Symbol),
|
|
arch: T.nilable(Symbol),
|
|
).returns(T::Boolean)
|
|
}
|
|
def fetch_bottle?(formula, force_bottle:, bottle_tag:, build_from_source_formulae:, os:, arch:)
|
|
bottle = formula.bottle
|
|
|
|
return true if force_bottle && bottle.present?
|
|
if os.present?
|
|
return true
|
|
elsif ENV["HOMEBREW_TEST_GENERIC_OS"].present?
|
|
# `:generic` bottles don't exist and `--os` flag is not specified.
|
|
return false
|
|
end
|
|
return true if arch.present?
|
|
return true if bottle_tag.present? && formula.bottled?(bottle_tag)
|
|
|
|
bottle.present? &&
|
|
formula.pour_bottle? &&
|
|
build_from_source_formulae.exclude?(formula.full_name) &&
|
|
bottle.compatible_locations?
|
|
end
|
|
end
|
|
end
|