From 044f4d947bd7f75efcab427716769697c0fa0b10 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sun, 30 Jul 2017 21:44:43 +0100 Subject: Tweak preserve link status on reinstall/upgrade. Treat a `brew install` command as normal i.e. link by default unless keg-only and only specify whether a keg should be linked when upgrading or reinstalling. Also, adjust the naming accordingly so it's more obvious that this is the case. --- Library/Homebrew/cmd/reinstall.rb | 3 ++- Library/Homebrew/cmd/upgrade.rb | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'Library/Homebrew/cmd') diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb index 4d42564c1..94096d2dd 100644 --- a/Library/Homebrew/cmd/reinstall.rb +++ b/Library/Homebrew/cmd/reinstall.rb @@ -23,6 +23,7 @@ module Homebrew def reinstall_formula(f) if f.opt_prefix.directory? keg = Keg.new(f.opt_prefix.resolved_path) + keg_had_linked_opt = true keg_was_linked = keg.linked? backup keg end @@ -38,7 +39,7 @@ module Homebrew fi.build_bottle = ARGV.build_bottle? || (!f.bottled? && f.build.bottle?) fi.interactive = ARGV.interactive? fi.git = ARGV.git? - fi.keg_was_linked = keg_was_linked + fi.link_keg = keg_was_linked if keg_had_linked_opt fi.prelude oh1 "Reinstalling #{f.full_name} #{options.to_a.join " "}" diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index cb6e6a5ab..1cdb497cf 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -101,6 +101,12 @@ module Homebrew end def upgrade_formula(f) + if f.opt_prefix.directory? + keg = Keg.new(f.opt_prefix.resolved_path) + keg_had_linked_opt = true + keg_was_linked = keg.linked? + end + formulae_maybe_with_kegs = [f] + f.old_installed_formulae outdated_kegs = formulae_maybe_with_kegs .map(&:linked_keg) @@ -118,6 +124,7 @@ module Homebrew fi.options &= f.options fi.build_bottle = ARGV.build_bottle? || (!f.bottled? && f.build.build_bottle?) fi.installed_on_request = !ARGV.named.empty? + fi.link_keg = keg_was_linked if keg_had_linked_opt if tab fi.installed_as_dependency = tab.installed_as_dependency fi.installed_on_request ||= tab.installed_on_request -- cgit v1.2.3