Moving ask input to Install.ask

This commit is contained in:
thibhero 2025-03-05 17:38:18 -05:00
parent 817c40d261
commit 0b53e54bfa
4 changed files with 69 additions and 76 deletions

View File

@ -307,19 +307,8 @@ module Homebrew
Install.perform_preinstall_checks_once Install.perform_preinstall_checks_once
Install.check_cc_argv(args.cc) Install.check_cc_argv(args.cc)
# Main block: if asking the user is enabled, show dependency and size information.
if args.ask? if args.ask?
ohai "Looking for bottles..." Install.ask(formulae, args: args)
sized_formulae = Install.compute_sized_formulae(formulae, args: args)
sizes = Install.compute_total_sizes(sized_formulae, debug: args.debug?)
puts "Formulae: #{sized_formulae.join(", ")}\n\n"
puts "Download Size: #{disk_usage_readable(sizes[:download])}"
puts "Install Size: #{disk_usage_readable(sizes[:installed])}"
puts "Net Install Size: #{disk_usage_readable(sizes[:net])}" if sizes[:net] != 0
Install.ask_input
end end
Install.install_formulae( Install.install_formulae(

View File

@ -133,17 +133,7 @@ module Homebrew
# Main block: if asking the user is enabled, show dependency and size information. # Main block: if asking the user is enabled, show dependency and size information.
if args.ask? if args.ask?
ohai "Looking for bottles..." Install.ask(formulae, args: args)
sized_formulae = Install.compute_sized_formulae(formulae, args: args)
sizes = Install.compute_total_sizes(sized_formulae, debug: args.debug?)
puts "Formulae: #{sized_formulae.join(", ")}\n\n"
puts "Download Size: #{disk_usage_readable(sizes[:download])}"
puts "Install Size: #{disk_usage_readable(sizes[:installed])}"
puts "Net Install Size: #{disk_usage_readable(sizes[:net])}" if sizes[:net] != 0
Install.ask_input
end end
formulae.each do |formula| formulae.each do |formula|

View File

@ -216,24 +216,14 @@ module Homebrew
"#{f.full_specified_name} #{f.pkg_version}" "#{f.full_specified_name} #{f.pkg_version}"
end end
end end
puts formulae_upgrades.join("\n") puts formulae_upgrades.join("\n") unless args.ask?
end end
Install.perform_preinstall_checks_once Install.perform_preinstall_checks_once
# Main block: if asking the user is enabled, show dependency and size information. # Main block: if asking the user is enabled, show dependency and size information.
if args.ask? if args.ask?
ohai "Looking for bottles..." Install.ask(formulae_to_install, args: args)
sized_formulae = Install.compute_sized_formulae(formulae_to_install, args: args)
sizes = Install.compute_total_sizes(sized_formulae, debug: args.debug?)
puts "Formulae: #{sized_formulae.join(", ")}\n\n"
puts "Download Size: #{disk_usage_readable(sizes[:download])}"
puts "Install Size: #{disk_usage_readable(sizes[:installed])}"
puts "Net Install Size: #{disk_usage_readable(sizes[:net])}" if sizes[:net] != 0
Install.ask_input
end end
Upgrade.upgrade_formulae( Upgrade.upgrade_formulae(

View File

@ -327,17 +327,74 @@ module Homebrew
puts formula_names.join(" ") puts formula_names.join(" ")
end end
# Main block: if asking the user is enabled, show dependency and size information.
def ask(formulae, args:)
ohai "Looking for bottles..."
sized_formulae = compute_sized_formulae(formulae, args: args)
sizes = compute_total_sizes(sized_formulae, debug: args.debug?)
puts "#{::Utils.pluralize("Formul", sized_formulae.count, plural: "ae",
singular: "a")} (#{sized_formulae.count}): #{sized_formulae.join(", ")}\n\n"
puts "Download Size: #{disk_usage_readable(sizes[:download])}"
puts "Install Size: #{disk_usage_readable(sizes[:installed])}"
puts "Net Install Size: #{disk_usage_readable(sizes[:net])}" if sizes[:net] != 0
ask_input
end
private
def perform_preinstall_checks(all_fatal: false)
check_prefix
check_cpu
attempt_directory_creation
Diagnostic.checks(:supported_configuration_checks, fatal: all_fatal)
Diagnostic.checks(:fatal_preinstall_checks)
end
alias generic_perform_preinstall_checks perform_preinstall_checks
def attempt_directory_creation
Keg.must_exist_directories.each do |dir|
FileUtils.mkdir_p(dir) unless dir.exist?
rescue
nil
end
end
def check_cpu
return unless Hardware::CPU.ppc?
odie <<~EOS
Sorry, Homebrew does not support your computer's CPU architecture!
For PowerPC Mac (PPC32/PPC64BE) support, see:
#{Formatter.url("https://github.com/mistydemeo/tigerbrew")}
EOS
end
def install_formula(formula_installer)
formula = formula_installer.formula
upgrade = formula.linked? && formula.outdated? && !formula.head? && !Homebrew::EnvConfig.no_install_upgrade?
Upgrade.install_formula(formula_installer, upgrade:)
end
def ask_input def ask_input
ohai "Do you want to proceed with the installation? [Y/y/yes/N/n]" ohai "Do you want to proceed with the installation? [Y/y/yes/N/n]"
return unless $stdin.gets != nil
accepted_inputs = %w[y yes] accepted_inputs = %w[y yes]
declined_inputs = %w[n no] declined_inputs = %w[n no]
loop do loop do
result = $stdin.gets.chomp.strip.downcase result = $stdin.gets
return unless result
result = result.chomp.strip.downcase
if accepted_inputs.include?(result) if accepted_inputs.include?(result)
break break
elsif declined_inputs.include?(result) elsif declined_inputs.include?(result)
exit 0 exit 1
else else
puts "Invalid input. Please enter 'Y', 'y', or 'yes' to proceed, or 'N' to abort." puts "Invalid input. Please enter 'Y', 'y', or 'yes' to proceed, or 'N' to abort."
end end
@ -359,7 +416,11 @@ module Homebrew
outdated_dependents = deps.map(&:to_formula).reject(&:pinned?).select do |dep| outdated_dependents = deps.map(&:to_formula).reject(&:pinned?).select do |dep|
dep.installed_kegs.empty? || (dep.bottled? && dep.outdated?) dep.installed_kegs.empty? || (dep.bottled? && dep.outdated?)
end end
deps.map(&:to_formula).each do |f|
outdated_dependents.concat(f.recursive_dependencies.map(&:to_formula).reject(&:pinned?).select do |dep|
dep.installed_kegs.empty? || (dep.bottled? && dep.outdated?)
end)
end
formula_list.concat(outdated_dependents) formula_list.concat(outdated_dependents)
end end
@ -403,43 +464,6 @@ module Homebrew
installed: total_installed_size, installed: total_installed_size,
net: total_net_size } net: total_net_size }
end end
private
def perform_preinstall_checks(all_fatal: false)
check_prefix
check_cpu
attempt_directory_creation
Diagnostic.checks(:supported_configuration_checks, fatal: all_fatal)
Diagnostic.checks(:fatal_preinstall_checks)
end
alias generic_perform_preinstall_checks perform_preinstall_checks
def attempt_directory_creation
Keg.must_exist_directories.each do |dir|
FileUtils.mkdir_p(dir) unless dir.exist?
rescue
nil
end
end
def check_cpu
return unless Hardware::CPU.ppc?
odie <<~EOS
Sorry, Homebrew does not support your computer's CPU architecture!
For PowerPC Mac (PPC32/PPC64BE) support, see:
#{Formatter.url("https://github.com/mistydemeo/tigerbrew")}
EOS
end
def install_formula(formula_installer)
formula = formula_installer.formula
upgrade = formula.linked? && formula.outdated? && !formula.head? && !Homebrew::EnvConfig.no_install_upgrade?
Upgrade.install_formula(formula_installer, upgrade:)
end
end end
end end
end end