mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
brew reinstall: Reuse options from last time
Now, we can finally stop stuggesting to `brew rm <foo>` and then `brew install <foo> <with-your-preferred options> So `brew reinstall` will honor all options that have been recorded into the INSTALL_RECEIPT.json plus if `--build-bottle` was used.
This commit is contained in:
parent
ad80b10de4
commit
cae03e3363
@ -3,7 +3,23 @@ require 'cmd/install'
|
||||
|
||||
module Homebrew extend self
|
||||
def reinstall
|
||||
self.uninstall
|
||||
self.install
|
||||
# At first save the named formulae and remove them from ARGV
|
||||
named = ARGV.named
|
||||
ARGV.delete_if { |arg| named.include? arg }
|
||||
clean_ARGV = ARGV.clone
|
||||
|
||||
# Add the used_options for each named formula separately so
|
||||
# that the options apply to the right formula.
|
||||
named.each do |name|
|
||||
ARGV.replace(clean_ARGV)
|
||||
ARGV << name
|
||||
tab = Tab.for_name(name)
|
||||
tab.used_options.each { |option| ARGV << option.to_s }
|
||||
ARGV << '--build-bottle' if tab.built_as_bottle
|
||||
# Todo: Be as smart as upgrade to restore the old state if reinstall fails.
|
||||
self.uninstall
|
||||
oh1 "Reinstalling #{name} #{ARGV.options_only*' '}"
|
||||
self.install
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user