diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index c4125ba426..517414f9fe 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -43,6 +43,10 @@ module Homebrew description: "Print the verification and post-install steps." switch "-n", "--dry-run", description: "Show what would be installed, but do not actually install anything." + switch "--ask", + env: :ask, + description: "Ask for confirmation before downloading and installing formulae. " \ + "Print bottles and dependencies download size and install size." [ [:switch, "--formula", "--formulae", { description: "Treat all named arguments as formulae.", @@ -123,11 +127,6 @@ module Homebrew [:switch, "--overwrite", { description: "Delete files that already exist in the prefix while linking.", }], - [:switch, "--ask", { - description: "Ask for confirmation before downloading and installing formulae. " \ - "Print bottles and dependencies download size and install size.", - env: :ask, - }], ].each do |args| options = args.pop send(*args, **options) @@ -218,6 +217,7 @@ module Homebrew end if casks.any? + Install.ask_casks casks if args.ask? if args.dry_run? if (casks_to_install = casks.reject(&:installed?).presence) ohai "Would install #{::Utils.pluralize("cask", casks_to_install.count, include_count: true)}:" @@ -310,7 +310,7 @@ module Homebrew Install.perform_preinstall_checks_once Install.check_cc_argv(args.cc) - Install.ask(formulae, args: args) if args.ask? + Install.ask_formulae(installed_formulae, args: args) if args.ask? Install.install_formulae( installed_formulae, diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb index 3c767f0619..2c1208e54a 100644 --- a/Library/Homebrew/cmd/reinstall.rb +++ b/Library/Homebrew/cmd/reinstall.rb @@ -39,6 +39,10 @@ module Homebrew "non-migrated versions." switch "-v", "--verbose", description: "Print the verification and post-install steps." + switch "--ask", + description: "Ask for confirmation before downloading and upgrading formulae. " \ + "Print bottles and dependencies download size, install and net install size.", + env: :ask [ [:switch, "--formula", "--formulae", { description: "Treat all named arguments as formulae." }], [:switch, "-s", "--build-from-source", { @@ -63,11 +67,6 @@ module Homebrew [:switch, "-g", "--git", { description: "Create a Git repository, useful for creating patches to the software.", }], - [:switch, "--ask", { - description: "Ask for confirmation before downloading and upgrading formulae. " \ - "Print bottles and dependencies download size, install and net install size.", - env: :ask, - }], ].each do |args| options = args.pop send(*args, **options) @@ -132,7 +131,7 @@ module Homebrew Install.perform_preinstall_checks_once # If asking the user is enabled, show dependency and size information. - Install.ask(formulae, args: args) if args.ask? + Install.ask_formulae(formulae, args: args) if args.ask? formulae.each do |formula| if formula.pinned? @@ -173,6 +172,7 @@ module Homebrew end if casks.any? + Install.ask_casks casks if args.ask? Cask::Reinstall.reinstall_casks( *casks, binaries: args.binaries?, diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index b48ace323d..7e053982e0 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -39,6 +39,10 @@ module Homebrew description: "Print the verification and post-install steps." switch "-n", "--dry-run", description: "Show what would be upgraded, but do not actually upgrade anything." + switch "--ask", + description: "Ask for confirmation before downloading and upgrading formulae. " \ + "Print bottles and dependencies download size, install and net install size.", + env: :ask [ [:switch, "--formula", "--formulae", { description: "Treat all named arguments as formulae. If no named arguments " \ @@ -71,11 +75,6 @@ module Homebrew [:switch, "--overwrite", { description: "Delete files that already exist in the prefix while linking.", }], - [:switch, "--ask", { - description: "Ask for confirmation before downloading and upgrading formulae. " \ - "Print bottles and dependencies download size, install and net install size.", - env: :ask, - }], ].each do |args| options = args.pop send(*args, **options) @@ -222,7 +221,7 @@ module Homebrew Install.perform_preinstall_checks_once # Main block: if asking the user is enabled, show dependency and size information. - Install.ask(formulae_to_install, args: args) if args.ask? + Install.ask_formulae(formulae_to_install, args: args) if args.ask? Upgrade.upgrade_formulae( formulae_to_install, @@ -262,6 +261,8 @@ module Homebrew def upgrade_outdated_casks(casks) return false if args.formula? + Install.ask_casks casks + Cask::Upgrade.upgrade_casks( *casks, force: args.force?, diff --git a/Library/Homebrew/install.rb b/Library/Homebrew/install.rb index f001f41578..8fba7fabf7 100644 --- a/Library/Homebrew/install.rb +++ b/Library/Homebrew/install.rb @@ -331,7 +331,9 @@ module Homebrew end # If asking the user is enabled, show dependency and size information. - def ask(formulae, args:) + def ask_formulae(formulae, args:) + return if formulae.empty? + ohai "Looking for bottles..." sized_formulae = compute_sized_formulae(formulae, args: args) @@ -346,6 +348,15 @@ module Homebrew ask_input end + def ask_casks(casks) + return if casks.empty? + + puts "#{::Utils.pluralize("Cask", casks.count, plural: "s")} \ +(#{casks.count}): #{casks.join(", ")}\n\n" + + ask_input + end + private def perform_preinstall_checks(all_fatal: false)