diff options
| author | Jack Nagel | 2012-03-23 13:05:08 -0500 |
|---|---|---|
| committer | Jack Nagel | 2012-03-23 13:05:08 -0500 |
| commit | 1bc631369494433714c5174dcd51511078377980 (patch) | |
| tree | 3fa4ae7f1e42b4bea295f3be33aa591918f3125e /Library | |
| parent | 9076037a0df37f79d0556bac683cc3b1c9742fe6 (diff) | |
| download | brew-1bc631369494433714c5174dcd51511078377980.tar.bz2 | |
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>
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/upgrade.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index 9777c5ce5..671188a3c 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -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}" diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index cd911b959..266f518df 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -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 |
