Merge pull request #5165 from Wojonatior/feature/homebrew_install_cleanup

Implement the HOMEBREW_INSTALL_CLEANUP env to trigger cleanup on reinstall/install/upgrade
This commit is contained in:
Mike McQuaid 2018-11-06 10:29:42 +00:00 committed by GitHub
commit 6b1d439a87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 25 additions and 5 deletions

View File

@ -73,6 +73,9 @@
#:
#: If `--git` (or `-g`) is passed, Homebrew will create a Git repository, useful for
#: creating patches to the software.
#:
#: If `HOMEBREW_INSTALL_CLEANUP` is set then remove previously installed versions
#: of upgraded <formulae> as well as the HOMEBREW_CACHE for that formula.
require "missing_formula"
require "formula_installer"
@ -254,6 +257,7 @@ module Homebrew
formulae.each do |f|
Migrator.migrate_if_needed(f)
install_formula(f)
Cleanup.new.cleanup_formula(f) if ENV["HOMEBREW_INSTALL_CLEANUP"]
end
Homebrew.messages.display_messages
rescue FormulaUnreadableError, FormulaClassUnavailableError,

View File

@ -3,6 +3,9 @@
#:
#: 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.
require "formula_installer"
require "development_tools"
@ -24,6 +27,7 @@ module Homebrew
end
Migrator.migrate_if_needed(f)
reinstall_formula(f)
Cleanup.new.cleanup_formula(f) if ENV["HOMEBREW_INSTALL_CLEANUP"]
end
Homebrew.messages.display_messages
end

View File

@ -3,7 +3,7 @@
#:
#: Options for the `install` command are also valid here.
#:
#: If `--cleanup` is specified or `HOMEBREW_UPGRADE_CLEANUP` is set then remove
#: If `--cleanup` is specified or `HOMEBREW_INSTALL_CLEANUP` is set then remove
#: previously installed version(s) of upgraded <formulae>.
#:
#: If `--fetch-HEAD` is passed, fetch the upstream repository to detect if
@ -107,7 +107,7 @@ module Homebrew
Migrator.migrate_if_needed(f)
begin
upgrade_formula(f)
next if !ARGV.include?("--cleanup") && !ENV["HOMEBREW_UPGRADE_CLEANUP"]
next if !ARGV.include?("--cleanup") && !ENV["HOMEBREW_UPGRADE_CLEANUP"] && !ENV["HOMEBREW_INSTALL_CLEANUP"]
next unless f.installed?
Cleanup.new.cleanup_formula(f)

View File

@ -8,7 +8,7 @@ describe "brew upgrade", :integration_test do
expect(HOMEBREW_CELLAR/"testball/0.1").to be_a_directory
end
it "upgrades a Formula and cleans up old versions" do
it "upgrades a Formula and cleans up old versions when `--cleanup` is passed" do
setup_test_formula "testball"
(HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath

View File

@ -311,6 +311,9 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
If `--git` (or `-g`) is passed, Homebrew will create a Git repository, useful for
creating patches to the software.
If `HOMEBREW_INSTALL_CLEANUP` is set then remove previously installed versions
of upgraded *`formulae`* as well as the HOMEBREW_CACHE for that formula.
* `leaves`:
Show installed formulae that are not dependencies of another installed formula.
@ -428,6 +431,9 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
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.
* `search`, `-S`:
Display all locally available formulae (including tapped ones).
No online search is performed.
@ -601,7 +607,7 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
Options for the `install` command are also valid here.
If `--cleanup` is specified or `HOMEBREW_UPGRADE_CLEANUP` is set then remove
If `--cleanup` is specified or `HOMEBREW_INSTALL_CLEANUP` is set then remove
previously installed version(s) of upgraded *`formulae`*.
If `--fetch-HEAD` is passed, fetch the upstream repository to detect if

View File

@ -315,6 +315,9 @@ If \fB\-\-interactive\fR (or \fB\-i\fR) is passed, download and patch \fIformula
.IP
If \fB\-\-git\fR (or \fB\-g\fR) is passed, Homebrew will create a Git repository, useful for creating patches to the software\.
.
.IP
If \fBHOMEBREW_INSTALL_CLEANUP\fR is set then remove previously installed versions of upgraded \fIformulae\fR as well as the HOMEBREW_CACHE for that formula\.
.
.TP
\fBleaves\fR
Show installed formulae that are not dependencies of another installed formula\.
@ -438,6 +441,9 @@ Uninstall and then install \fIformula\fR (with existing install options)\.
.IP
If \fB\-\-display\-times\fR is passed, install times for each formula are printed at the end of the run\.
.
.IP
If \fBHOMEBREW_INSTALL_CLEANUP\fR is set then remove previously installed versions of upgraded \fIformulae\fR as well as the HOMEBREW_CACHE for that formula\.
.
.TP
\fBsearch\fR, \fB\-S\fR
Display all locally available formulae (including tapped ones)\. No online search is performed\.
@ -614,7 +620,7 @@ Upgrade outdated, unpinned brews (with existing install options)\.
Options for the \fBinstall\fR command are also valid here\.
.
.IP
If \fB\-\-cleanup\fR is specified or \fBHOMEBREW_UPGRADE_CLEANUP\fR is set then remove previously installed version(s) of upgraded \fIformulae\fR\.
If \fB\-\-cleanup\fR is specified or \fBHOMEBREW_INSTALL_CLEANUP\fR is set then remove previously installed version(s) of upgraded \fIformulae\fR\.
.
.IP
If \fB\-\-fetch\-HEAD\fR is passed, fetch the upstream repository to detect if the HEAD installation of the formula is outdated\. Otherwise, the repository\'s HEAD will be checked for updates when a new stable or devel version has been released\.