aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2016-09-17 15:00:46 +0100
committerMike McQuaid2016-09-17 15:00:46 +0100
commit8f1ae3b28b0a12fe4a9d905dd4c41873d1674377 (patch)
treebb7fbfccf451566742ff6a3fe6e06d9e7bbb0570
parent224794c76188d675e05c10322f64fa9e1506b13a (diff)
downloadbrew-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.rb3
-rw-r--r--Library/Homebrew/cmd/update-report.rb25
-rw-r--r--Library/Homebrew/config.rb12
-rw-r--r--Library/Homebrew/utils.rb24
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