From 634fcad1b230fabe3a6b6d094541b0151178867f Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Tue, 16 Aug 2022 20:59:01 +0900 Subject: [PATCH] add dry-run option to formula#install --- Library/Homebrew/cmd/install.rb | 4 +++- Library/Homebrew/formula_installer.rb | 11 +++++++++-- Library/Homebrew/install.rb | 4 +++- Library/Homebrew/upgrade.rb | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 2acb56baba..60f2733cd1 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -245,6 +245,7 @@ module Homebrew debug: args.debug?, quiet: args.quiet?, verbose: args.verbose?, + dry_run: args.dry_run?, ) Upgrade.check_installed_dependents( @@ -260,9 +261,10 @@ module Homebrew debug: args.debug?, quiet: args.quiet?, verbose: args.verbose?, + dry_run: args.dry_run?, ) - Cleanup.periodic_clean! + Cleanup.periodic_clean!(dry_run: args.dry_run?) Homebrew.messages.display_messages(display_times: args.display_times?) rescue FormulaUnreadableError, FormulaClassUnavailableError, diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index e895c09215..759fb247c7 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -40,7 +40,7 @@ class FormulaInstaller attr_predicate :show_summary_heading?, :show_header? attr_predicate :force_bottle?, :ignore_deps?, :only_deps?, :interactive?, :git?, :force?, :overwrite?, :keep_tmp? attr_predicate :debug_symbols? - attr_predicate :verbose?, :debug?, :quiet? + attr_predicate :verbose?, :debug?, :quiet?, :dry_run? def initialize( formula, @@ -66,7 +66,8 @@ class FormulaInstaller overwrite: false, debug: false, quiet: false, - verbose: false + verbose: false, + dry_run: false ) @formula = formula @env = env @@ -90,6 +91,7 @@ class FormulaInstaller @verbose = verbose @quiet = quiet @debug = debug + @dry_run = dry_run @installed_as_dependency = installed_as_dependency @installed_on_request = installed_on_request @options = options @@ -696,6 +698,7 @@ class FormulaInstaller debug: debug?, quiet: quiet?, verbose: verbose?, + dry_run: dry_run?, ) fi.prelude fi.fetch @@ -1182,6 +1185,10 @@ class FormulaInstaller return if self.class.fetched.include?(formula) fetch_dependencies + if dry_run? + puts "#{Formatter.identifier(formula.full_name)} would be installed" + return + end return if only_deps? diff --git a/Library/Homebrew/install.rb b/Library/Homebrew/install.rb index 3d838dac3e..8154dd1325 100644 --- a/Library/Homebrew/install.rb +++ b/Library/Homebrew/install.rb @@ -274,7 +274,8 @@ module Homebrew overwrite: false, debug: false, quiet: false, - verbose: false + verbose: false, + dry_run: false ) formula_installers = formulae_to_install.map do |f| Migrator.migrate_if_needed(f, force: force) @@ -300,6 +301,7 @@ module Homebrew debug: debug, quiet: quiet, verbose: verbose, + dry_run: dry_run, ) begin diff --git a/Library/Homebrew/upgrade.rb b/Library/Homebrew/upgrade.rb index 54e3223c18..82b6b7a691 100644 --- a/Library/Homebrew/upgrade.rb +++ b/Library/Homebrew/upgrade.rb @@ -208,6 +208,7 @@ module Homebrew # possible for the existing build to interfere with the build we are about to # do! Seriously, it happens! kegs.each(&:unlink) if kegs.present? + return if formula_installer.dry_run? formula_installer.install formula_installer.finish