Move LinkedKegs migration.
Move the `LinkedKegs` migration into `utils.rb` so it can also be called from `brew.rb` on startup.
This commit is contained in:
		
							parent
							
								
									224794c761
								
							
						
					
					
						commit
						8f1ae3b28b
					
				@ -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")
 | 
			
		||||
 | 
			
		||||
@ -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"
 | 
			
		||||
 | 
			
		||||
@ -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"
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user