reinstall: don't build bottles unnecessarily.
Apply the same changes from #6066. Also apply the same logics from `brew upgrade` to preserve `installed_as_dependency`/`installed_on_request` settings when reinstalling formulae.
This commit is contained in:
parent
e18c5c1291
commit
1dfdc5c2ec
@ -10,6 +10,7 @@ module Homebrew
|
|||||||
def reinstall_formula(f, build_from_source: false)
|
def reinstall_formula(f, build_from_source: false)
|
||||||
if f.opt_prefix.directory?
|
if f.opt_prefix.directory?
|
||||||
keg = Keg.new(f.opt_prefix.resolved_path)
|
keg = Keg.new(f.opt_prefix.resolved_path)
|
||||||
|
tab = Tab.for_keg(keg)
|
||||||
keg_had_linked_opt = true
|
keg_had_linked_opt = true
|
||||||
keg_was_linked = keg.linked?
|
keg_was_linked = keg.linked?
|
||||||
backup keg
|
backup keg
|
||||||
@ -22,11 +23,16 @@ module Homebrew
|
|||||||
|
|
||||||
fi = FormulaInstaller.new(f)
|
fi = FormulaInstaller.new(f)
|
||||||
fi.options = options
|
fi.options = options
|
||||||
fi.build_bottle = ARGV.build_bottle? || (!f.bottle_defined? && f.build.bottle?)
|
fi.build_bottle = ARGV.build_bottle?
|
||||||
fi.interactive = ARGV.interactive?
|
fi.interactive = ARGV.interactive?
|
||||||
fi.git = ARGV.git?
|
fi.git = ARGV.git?
|
||||||
fi.link_keg ||= keg_was_linked if keg_had_linked_opt
|
fi.link_keg ||= keg_was_linked if keg_had_linked_opt
|
||||||
fi.build_from_source = true if build_from_source
|
fi.build_from_source = true if build_from_source
|
||||||
|
if tab
|
||||||
|
fi.build_bottle ||= tab.built_bottle?
|
||||||
|
fi.installed_as_dependency = tab.installed_as_dependency
|
||||||
|
fi.installed_on_request = tab.installed_on_request
|
||||||
|
end
|
||||||
fi.prelude
|
fi.prelude
|
||||||
|
|
||||||
oh1 "Reinstalling #{Formatter.identifier(f.full_name)} #{options.to_a.join " "}"
|
oh1 "Reinstalling #{Formatter.identifier(f.full_name)} #{options.to_a.join " "}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user