Mike McQuaid dc71b7c8f6
Cleanup extend/ directory usage.
- move some things out of `extend` that don't really fit there e.g.
  `Module`s that are included but not doing any
  overriding/monkeypatching
- move some code into `extend/os` to fix all remaining
  `rubocop:todo Homebrew/MoveToExtendOS`s
- remove some unneeded `bundle` skipper code that doesn't really make
  sense given our current bottling strategy
- extract some `Pathname` extensions to `extend/pathname` for separate
  files
- move a `ENV` `Kernel` extension into `kernel.rb`
- `odeprecate` a seemingly unused backwards compatibility method
- move `readline_nonblock` from a monkeypatch to a
  `ReadlineNonblock.read` method as its only used in one place
- fix up a link in documentation
2025-06-09 19:06:16 +01:00

55 lines
1.6 KiB
Ruby

# typed: true # rubocop:todo Sorbet/StrictSigil
# frozen_string_literal: true
require "hardware"
module Homebrew
module Bundle
module Skipper
class << self
sig { params(entry: Dsl::Entry, silent: T::Boolean).returns(T::Boolean) }
def skip?(entry, silent: false)
require "bundle/brew_dumper"
return true if @failed_taps&.any? do |tap|
prefix = "#{tap}/"
entry.name.start_with?(prefix) || entry.options[:full_name]&.start_with?(prefix)
end
entry_type_skips = Array(skipped_entries[entry.type])
return false if entry_type_skips.empty?
# Check the name or ID particularly for Mac App Store entries where they
# can have spaces in the names (and the `mas` output format changes on
# occasion).
entry_ids = [entry.name, entry.options[:id]&.to_s].compact
return false unless entry_type_skips.intersect?(entry_ids)
puts Formatter.warning "Skipping #{entry.name}" unless silent
true
end
def tap_failed!(tap_name)
@failed_taps ||= []
@failed_taps << tap_name
end
private
def skipped_entries
return @skipped_entries if @skipped_entries
@skipped_entries = {}
[:brew, :cask, :mas, :tap, :whalebrew].each do |type|
@skipped_entries[type] =
ENV["HOMEBREW_BUNDLE_#{type.to_s.upcase}_SKIP"]&.split
end
@skipped_entries
end
end
end
end
end
require "extend/os/bundle/skipper"