brew/Library/Homebrew/cmd/reinstall.rb

57 lines
1.7 KiB
Ruby
Raw Normal View History

#: * `reinstall` [`--display-times`] <formula>:
#: Uninstall and then install <formula> (with existing install options).
#:
#: If `--display-times` is passed, install times for each formula are printed
#: at the end of the run.
#:
#: If `HOMEBREW_INSTALL_CLEANUP` is set then remove previously installed versions
#: of upgraded <formulae> as well as the HOMEBREW_CACHE for that formula.
2016-04-08 16:28:43 +02:00
2014-10-31 20:10:08 -05:00
require "formula_installer"
require "development_tools"
require "messages"
require "reinstall"
require "cli_parser"
2013-02-17 13:23:41 +00:00
module Homebrew
2016-09-26 01:44:51 +02:00
module_function
def reinstall_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`reinstall` [<option(s)>] <formula>:
Uninstall and then install <formula> (with existing install options).
If `HOMEBREW_INSTALL_CLEANUP` is set then remove previously installed versions
of upgraded <formulae> as well as the HOMEBREW_CACHE for that formula.
EOS
switch "-s", "--build-from-source",
description: "Compile the formula> from source even if a bottle is available."
switch "--display-times",
description: "Print install times for each formula at the end of the run."
2018-11-13 17:28:22 +05:30
switch :verbose
switch :debug
end
end
2013-02-17 13:23:41 +00:00
def reinstall
reinstall_args.parse
FormulaInstaller.prevent_build_flags unless DevelopmentTools.installed?
Install.perform_preinstall_checks
2016-09-05 22:40:08 +03:00
ARGV.resolved_formulae.each do |f|
if f.pinned?
onoe "#{f.full_name} is pinned. You must unpin it to reinstall."
next
end
Migrator.migrate_if_needed(f)
2016-09-05 22:40:08 +03:00
reinstall_formula(f)
Cleanup.new.cleanup_formula(f) if ENV["HOMEBREW_INSTALL_CLEANUP"]
2016-09-05 22:40:08 +03:00
end
Homebrew.messages.display_messages
end
2013-02-17 13:23:41 +00:00
end