diff options
| author | Mike McQuaid | 2016-09-17 15:00:46 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-17 15:00:46 +0100 |
| commit | 8f1ae3b28b0a12fe4a9d905dd4c41873d1674377 (patch) | |
| tree | bb7fbfccf451566742ff6a3fe6e06d9e7bbb0570 | |
| parent | 224794c76188d675e05c10322f64fa9e1506b13a (diff) | |
| download | brew-8f1ae3b28b0a12fe4a9d905dd4c41873d1674377.tar.bz2 | |
Move LinkedKegs migration.
Move the `LinkedKegs` migration into `utils.rb` so it can also be called
from `brew.rb` on startup.
| -rw-r--r-- | Library/Homebrew/brew.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/update-report.rb | 25 | ||||
| -rw-r--r-- | Library/Homebrew/config.rb | 12 | ||||
| -rw-r--r-- | Library/Homebrew/utils.rb | 24 |
4 files changed, 30 insertions, 34 deletions
diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb index ee7035009..b177569d1 100644 --- a/Library/Homebrew/brew.rb +++ b/Library/Homebrew/brew.rb @@ -87,6 +87,9 @@ begin # `Homebrew.help` never returns, except for external/unknown commands. end + # Migrate LinkedKegs/PinnedKegs if update didn't already do so + migrate_legacy_keg_symlinks_if_necessary + # Uninstall old brew-cask if it's still around; we just use the tap now. if cmd == "cask" && (HOMEBREW_CELLAR/"brew-cask").exist? system(HOMEBREW_BREW_FILE, "uninstall", "--force", "brew-cask") diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 653757a2e..d97a0275e 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -7,6 +7,7 @@ require "migrator" require "formulary" require "descriptions" require "cleanup" +require "utils" module Homebrew def update_preinstall_header @@ -168,30 +169,6 @@ module Homebrew end end - def migrate_legacy_keg_symlinks_if_necessary - legacy_linked_kegs = HOMEBREW_LIBRARY/"LinkedKegs" - return unless legacy_linked_kegs.directory? - - legacy_linked_kegs.children.each do |f| - keg = Keg.new(f.realpath) - keg.unlink - keg.link - end - FileUtils.rm_rf legacy_linked_kegs - - legacy_pinned_kegs = HOMEBREW_LIBRARY/"PinnedKegs" - return unless legacy_pinned_kegs.directory? - - legacy_pinned_kegs.children.each do |f| - pin_version = Keg.new(f.realpath).version - formula = Formulary.factory(f.basename.to_s) - pin = FormulaPin.new(formula) - pin.unpin - pin.pin_at(pin_version) - end - FileUtils.rm_rf legacy_pinned_kegs - end - def link_completions_and_docs return if HOMEBREW_PREFIX.to_s == HOMEBREW_REPOSITORY.to_s command = "brew update" diff --git a/Library/Homebrew/config.rb b/Library/Homebrew/config.rb index 31ac2d435..38d7c8043 100644 --- a/Library/Homebrew/config.rb +++ b/Library/Homebrew/config.rb @@ -18,18 +18,10 @@ HOMEBREW_LIBRARY = Pathname.new(ENV["HOMEBREW_LIBRARY"]) HOMEBREW_SHIMS_PATH = HOMEBREW_LIBRARY/"Homebrew/shims" # Where we store symlinks to currently linked kegs -HOMEBREW_LINKED_KEGS = if (HOMEBREW_LIBRARY/"LinkedKegs").exist? - HOMEBREW_LIBRARY/"LinkedKegs" -else - HOMEBREW_PREFIX/"var/homebrew/linked" -end +HOMEBREW_LINKED_KEGS = HOMEBREW_PREFIX/"var/homebrew/linked" # Where we store symlinks to currently version-pinned kegs -HOMEBREW_PINNED_KEGS = if (HOMEBREW_LIBRARY/"PinnedKegs").exist? - HOMEBREW_LIBRARY/"PinnedKegs" -else - HOMEBREW_PREFIX/"var/homebrew/pinned" -end +HOMEBREW_PINNED_KEGS = HOMEBREW_PREFIX/"var/homebrew/pinned" # Where we store lock files HOMEBREW_LOCK_DIR = HOMEBREW_PREFIX/"var/homebrew/locks" diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 543b57e19..b3520a7ec 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -620,3 +620,27 @@ end def link_path_manpages(path, command) link_src_dst_dirs(path/"man", HOMEBREW_PREFIX/"share/man", command) end + +def migrate_legacy_keg_symlinks_if_necessary + legacy_linked_kegs = HOMEBREW_LIBRARY/"LinkedKegs" + return unless legacy_linked_kegs.directory? + + legacy_linked_kegs.children.each do |f| + keg = Keg.new(f.realpath) + keg.unlink + keg.link + end + FileUtils.rm_rf legacy_linked_kegs + + legacy_pinned_kegs = HOMEBREW_LIBRARY/"PinnedKegs" + return unless legacy_pinned_kegs.directory? + + legacy_pinned_kegs.children.each do |f| + pin_version = Keg.new(f.realpath).version + formula = Formulary.factory(f.basename.to_s) + pin = FormulaPin.new(formula) + pin.unpin + pin.pin_at(pin_version) + end + FileUtils.rm_rf legacy_pinned_kegs +end |
