Pass the tab to FormulaInstaller
Callers of FormulaInstaller now usually unlink the existing keg prior to running the installer. However, Tab.for_formula uses the LinkedKeg record to obtain the tab. Since we need the tab to persist install options across upgrades, we must start creating the Tab object before unlinking the old keg and passing it to the FormulaInstaller. Fixes Homebrew/homebrew#11086. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
parent
9076037a0d
commit
1bc6313694
@ -49,9 +49,10 @@ module Homebrew extend self
|
||||
end
|
||||
|
||||
def upgrade_formula f
|
||||
tab = Tab.for_formula(f)
|
||||
outdated_keg = Keg.new(f.linked_keg.realpath) rescue nil
|
||||
|
||||
installer = FormulaInstaller.new f
|
||||
installer = FormulaInstaller.new(f, tab)
|
||||
installer.show_header = false
|
||||
|
||||
oh1 "Upgrading #{f.name}"
|
||||
|
||||
@ -7,13 +7,15 @@ require 'bottles'
|
||||
|
||||
class FormulaInstaller
|
||||
attr :f
|
||||
attr :tab
|
||||
attr :show_summary_heading, true
|
||||
attr :ignore_deps, true
|
||||
attr :install_bottle, true
|
||||
attr :show_header, true
|
||||
|
||||
def initialize ff
|
||||
def initialize ff, tab=nil
|
||||
@f = ff
|
||||
@tab = tab
|
||||
@show_header = true
|
||||
@ignore_deps = ARGV.include? '--ignore-dependencies' || ARGV.interactive?
|
||||
@install_bottle = install_bottle? ff
|
||||
@ -111,9 +113,10 @@ class FormulaInstaller
|
||||
end
|
||||
|
||||
def install_dependency dep
|
||||
dep_tab = Tab.for_formula(dep)
|
||||
outdated_keg = Keg.new(dep.linked_keg.realpath) rescue nil
|
||||
|
||||
fi = FormulaInstaller.new dep
|
||||
fi = FormulaInstaller.new(dep, dep_tab)
|
||||
fi.ignore_deps = true
|
||||
fi.show_header = false
|
||||
oh1 "Installing #{f} dependency: #{dep}"
|
||||
@ -179,8 +182,7 @@ class FormulaInstaller
|
||||
|
||||
args = ARGV.clone
|
||||
unless args.include? '--fresh'
|
||||
previous_install = Tab.for_formula f
|
||||
args.concat previous_install.used_options
|
||||
args.concat tab.used_options unless tab.nil?
|
||||
args.uniq! # Just in case some dupes were added
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user