Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bundle: remove include Kernel references #19566

Merged
merged 1 commit into from
Mar 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions Library/Homebrew/bundle/brewfile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
module Homebrew
module Bundle
module Brewfile
module_function

def path(dash_writes_to_stdout: false, global: false, file: nil)
def self.path(dash_writes_to_stdout: false, global: false, file: nil)
env_bundle_file_global = ENV.fetch("HOMEBREW_BUNDLE_FILE_GLOBAL", nil)
env_bundle_file = ENV.fetch("HOMEBREW_BUNDLE_FILE", nil)
user_config_home = ENV.fetch("HOMEBREW_USER_CONFIG_HOME", nil)
Expand Down Expand Up @@ -36,13 +34,13 @@ def path(dash_writes_to_stdout: false, global: false, file: nil)
Pathname.new(filename).expand_path(Dir.pwd)
end

def read(global: false, file: nil)
def self.read(global: false, file: nil)
Homebrew::Bundle::Dsl.new(Brewfile.path(global:, file:))
rescue Errno::ENOENT
raise "No Brewfile found"
end

def handle_file_value(filename, dash_writes_to_stdout)
private_class_method def self.handle_file_value(filename, dash_writes_to_stdout)
if filename != "-"
filename
elsif dash_writes_to_stdout
Expand Down
7 changes: 0 additions & 7 deletions Library/Homebrew/bundle/brewfile.rbi

This file was deleted.

19 changes: 8 additions & 11 deletions Library/Homebrew/bundle/cask_dumper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,24 @@
module Homebrew
module Bundle
module CaskDumper
module_function

def reset!
def self.reset!
@casks = nil
@cask_names = nil
@cask_hash = nil
end

def cask_names
def self.cask_names
@cask_names ||= casks.map(&:to_s)
end

def outdated_cask_names
def self.outdated_cask_names
return [] unless Bundle.cask_installed?

casks.select { |c| c.outdated?(greedy: false) }
.map(&:to_s)
end

def cask_is_outdated_using_greedy?(cask_name)
def self.cask_is_outdated_using_greedy?(cask_name)
return false unless Bundle.cask_installed?

cask = casks.find { |c| c.to_s == cask_name }
Expand All @@ -32,15 +30,15 @@ def cask_is_outdated_using_greedy?(cask_name)
cask.outdated?(greedy: true)
end

def dump(describe: false)
def self.dump(describe: false)
casks.map do |cask|
description = "# #{cask.desc}\n" if describe && cask.desc.present?
config = ", args: { #{explicit_s(cask.config)} }" if cask.config.present? && cask.config.explicit.present?
"#{description}cask \"#{cask}\"#{config}"
end.join("\n")
end

def formula_dependencies(cask_list)
def self.formula_dependencies(cask_list)
return [] unless Bundle.cask_installed?
return [] if cask_list.blank?

Expand All @@ -51,15 +49,14 @@ def formula_dependencies(cask_list)
end.compact
end

def casks
private_class_method def self.casks
return [] unless Bundle.cask_installed?

require "cask/caskroom"
@casks ||= Cask::Caskroom.casks
end
private_class_method :casks

def explicit_s(cask_config)
private_class_method def self.explicit_s(cask_config)
cask_config.explicit.map do |key, value|
# inverse of #env - converts :languages config key back to --language flag
if key == :languages
Expand Down
7 changes: 0 additions & 7 deletions Library/Homebrew/bundle/cask_dumper.rbi

This file was deleted.

20 changes: 9 additions & 11 deletions Library/Homebrew/bundle/cask_installer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,20 @@
module Homebrew
module Bundle
module CaskInstaller
module_function

def reset!
def self.reset!
@installed_casks = nil
@outdated_casks = nil
end

def upgrading?(no_upgrade, name, options)
private_class_method def self.upgrading?(no_upgrade, name, options)
return false if no_upgrade
return true if outdated_casks.include?(name)
return false unless options[:greedy]

Homebrew::Bundle::CaskDumper.cask_is_outdated_using_greedy?(name)
end

def preinstall(name, no_upgrade: false, verbose: false, **options)
def self.preinstall(name, no_upgrade: false, verbose: false, **options)
if installed_casks.include?(name) && !upgrading?(no_upgrade, name, options)
puts "Skipping install of #{name} cask. It is already installed." if verbose
return false
Expand All @@ -28,7 +26,7 @@ def preinstall(name, no_upgrade: false, verbose: false, **options)
true
end

def install(name, preinstall: true, no_upgrade: false, verbose: false, force: false, **options)
def self.install(name, preinstall: true, no_upgrade: false, verbose: false, force: false, **options)
return true unless preinstall

full_name = options.fetch(:full_name, name)
Expand Down Expand Up @@ -73,7 +71,7 @@ def install(name, preinstall: true, no_upgrade: false, verbose: false, force: fa
result
end

def postinstall_change_state!(name:, options:, verbose:)
private_class_method def self.postinstall_change_state!(name:, options:, verbose:)
postinstall = options.fetch(:postinstall, nil)
return true if postinstall.blank?

Expand All @@ -88,19 +86,19 @@ def self.cask_installed_and_up_to_date?(cask, no_upgrade: false)
!cask_upgradable?(cask)
end

def cask_installed?(cask)
def self.cask_installed?(cask)
installed_casks.include? cask
end

def cask_upgradable?(cask)
def self.cask_upgradable?(cask)
outdated_casks.include? cask
end

def installed_casks
def self.installed_casks
@installed_casks ||= Homebrew::Bundle::CaskDumper.cask_names
end

def outdated_casks
def self.outdated_casks
@outdated_casks ||= Homebrew::Bundle::CaskDumper.outdated_cask_names
end
end
Expand Down
7 changes: 0 additions & 7 deletions Library/Homebrew/bundle/cask_installer.rbi

This file was deleted.

18 changes: 8 additions & 10 deletions Library/Homebrew/bundle/checker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,6 @@ def find_actionable(entries, exit_on_first_error: false, no_upgrade: false, verb
end
end

module_function

CheckResult = Struct.new :work_to_be_done, :errors

CHECKS = {
Expand All @@ -68,7 +66,7 @@ def find_actionable(entries, exit_on_first_error: false, no_upgrade: false, verb
formulae_to_start: "Services",
}.freeze

def check(global: false, file: nil, exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.check(global: false, file: nil, exit_on_first_error: false, no_upgrade: false, verbose: false)
@dsl ||= Brewfile.read(global:, file:)

check_method_names = CHECKS.keys
Expand All @@ -89,49 +87,49 @@ def check(global: false, file: nil, exit_on_first_error: false, no_upgrade: fals
CheckResult.new work_to_be_done, errors
end

def casks_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.casks_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
Homebrew::Bundle::Checker::CaskChecker.new.find_actionable(
@dsl.entries,
exit_on_first_error:, no_upgrade:, verbose:,
)
end

def formulae_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.formulae_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
Homebrew::Bundle::Checker::BrewChecker.new.find_actionable(
@dsl.entries,
exit_on_first_error:, no_upgrade:, verbose:,
)
end

def taps_to_tap(exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.taps_to_tap(exit_on_first_error: false, no_upgrade: false, verbose: false)
Homebrew::Bundle::Checker::TapChecker.new.find_actionable(
@dsl.entries,
exit_on_first_error:, no_upgrade:, verbose:,
)
end

def apps_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.apps_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
Homebrew::Bundle::Checker::MacAppStoreChecker.new.find_actionable(
@dsl.entries,
exit_on_first_error:, no_upgrade:, verbose:,
)
end

def extensions_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.extensions_to_install(exit_on_first_error: false, no_upgrade: false, verbose: false)
Homebrew::Bundle::Checker::VscodeExtensionChecker.new.find_actionable(
@dsl.entries,
exit_on_first_error:, no_upgrade:, verbose:,
)
end

def formulae_to_start(exit_on_first_error: false, no_upgrade: false, verbose: false)
def self.formulae_to_start(exit_on_first_error: false, no_upgrade: false, verbose: false)
Homebrew::Bundle::Checker::BrewServiceChecker.new.find_actionable(
@dsl.entries,
exit_on_first_error:, no_upgrade:, verbose:,
)
end

def reset!
def self.reset!
@dsl = nil
Homebrew::Bundle::CaskDumper.reset!
Homebrew::Bundle::BrewDumper.reset!
Expand Down
4 changes: 1 addition & 3 deletions Library/Homebrew/bundle/commands/add.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ module Homebrew
module Bundle
module Commands
module Add
module_function

def run(*args, type:, global:, file:)
def self.run(*args, type:, global:, file:)
Homebrew::Bundle::Adder.add(*args, type:, global:, file:)
end
end
Expand Down
4 changes: 1 addition & 3 deletions Library/Homebrew/bundle/commands/check.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@ module Homebrew
module Bundle
module Commands
module Check
module_function

ARROW = "→"
FAILURE_MESSAGE = "brew bundle can't satisfy your Brewfile's dependencies."

def run(global: false, file: nil, no_upgrade: false, verbose: false)
def self.run(global: false, file: nil, no_upgrade: false, verbose: false)
output_errors = verbose
exit_on_first_error = !verbose
check_result = Homebrew::Bundle::Checker.check(
Expand Down
24 changes: 11 additions & 13 deletions Library/Homebrew/bundle/commands/cleanup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ module Bundle
module Commands
# TODO: refactor into multiple modules
module Cleanup
module_function

def reset!
def self.reset!
@dsl = nil
@kept_casks = nil
@kept_formulae = nil
Expand All @@ -21,7 +19,7 @@ def reset!
Homebrew::Bundle::BrewServices.reset!
end

def run(global: false, file: nil, force: false, zap: false, dsl: nil)
def self.run(global: false, file: nil, force: false, zap: false, dsl: nil)
@dsl ||= dsl

casks = casks_to_uninstall(global:, file:)
Expand Down Expand Up @@ -88,11 +86,11 @@ def run(global: false, file: nil, force: false, zap: false, dsl: nil)
end
end

def casks_to_uninstall(global: false, file: nil)
def self.casks_to_uninstall(global: false, file: nil)
Homebrew::Bundle::CaskDumper.cask_names - kept_casks(global:, file:)
end

def formulae_to_uninstall(global: false, file: nil)
def self.formulae_to_uninstall(global: false, file: nil)
kept_formulae = self.kept_formulae(global:, file:)

current_formulae = Homebrew::Bundle::BrewDumper.formulae
Expand All @@ -102,7 +100,7 @@ def formulae_to_uninstall(global: false, file: nil)
current_formulae.map { |f| f[:full_name] }
end

def kept_formulae(global: false, file: nil)
private_class_method def self.kept_formulae(global: false, file: nil)
@kept_formulae ||= begin
@dsl ||= Brewfile.read(global:, file:)

Expand All @@ -118,14 +116,14 @@ def kept_formulae(global: false, file: nil)
end
end

def kept_casks(global: false, file: nil)
private_class_method def self.kept_casks(global: false, file: nil)
return @kept_casks if @kept_casks

@dsl ||= Brewfile.read(global:, file:)
@kept_casks = @dsl.entries.select { |e| e.type == :cask }.map(&:name)
end

def recursive_dependencies(current_formulae, formulae_names, top_level: true)
private_class_method def self.recursive_dependencies(current_formulae, formulae_names, top_level: true)
@checked_formulae_names = [] if top_level
dependencies = T.let([], T::Array[Formula])

Expand Down Expand Up @@ -153,7 +151,7 @@ def recursive_dependencies(current_formulae, formulae_names, top_level: true)

IGNORED_TAPS = %w[homebrew/core].freeze

def taps_to_untap(global: false, file: nil)
def self.taps_to_untap(global: false, file: nil)
@dsl ||= Brewfile.read(global:, file:)
kept_formulae = self.kept_formulae(global:, file:).filter_map(&method(:lookup_formula))
kept_taps = @dsl.entries.select { |e| e.type == :tap }.map(&:name)
Expand All @@ -162,14 +160,14 @@ def taps_to_untap(global: false, file: nil)
current_taps - kept_taps - IGNORED_TAPS
end

def lookup_formula(formula)
def self.lookup_formula(formula)
Formulary.factory(formula)
rescue TapFormulaUnavailableError
# ignore these as an unavailable formula implies there is no tap to worry about
nil
end

def vscode_extensions_to_uninstall(global: false, file: nil)
def self.vscode_extensions_to_uninstall(global: false, file: nil)
@dsl ||= Brewfile.read(global:, file:)
kept_extensions = @dsl.entries.select { |e| e.type == :vscode }.map { |x| x.name.downcase }

Expand All @@ -182,7 +180,7 @@ def vscode_extensions_to_uninstall(global: false, file: nil)
current_extensions - kept_extensions
end

def system_output_no_stderr(cmd, *args)
def self.system_output_no_stderr(cmd, *args)
IO.popen([cmd, *args], err: :close).read
end
end
Expand Down
Loading
Loading