diff options
| author | Mike McQuaid | 2016-09-17 18:58:00 +0100 |
|---|---|---|
| committer | GitHub | 2016-09-17 18:58:00 +0100 |
| commit | 5b8329b1c1d3189d8cbbdab848e5f7b0719661ad (patch) | |
| tree | eb78a259bad6060f436b071b2a62eae40194491e /Library | |
| parent | 390bcf413bd3bfa69b1663a37f71665b190da0eb (diff) | |
| parent | 241d7b991bd9e830748e35f81b8738e1b069e43d (diff) | |
| download | brew-5b8329b1c1d3189d8cbbdab848e5f7b0719661ad.tar.bz2 | |
Merge pull request #992 from MikeMcQuaid/migrate-legacy-symlinks-harder
Improve legacy symlink migration.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/utils.rb | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index b3520a7ec..0c36da2e1 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -625,22 +625,30 @@ 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 + legacy_linked_kegs.children.each do |link| + name = link.basename + src = begin + link.realpath + rescue Errno::ENOENT + begin + (HOMEBREW_PREFIX/"opt/#{name}").realpath + rescue Errno::ENOENT + Formulary.factory(name).installed_prefix + end + end + dst = HOMEBREW_LINKED_KEGS/name + FileUtils.ln_sf(src.relative_path_from(dst.parent), dst) 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) + legacy_pinned_kegs.children.each do |link| + name = link.basename + src = link.realpath + dst = HOMEBREW_PINNED_KEGS/name + FileUtils.ln_sf(src.relative_path_from(dst.parent), dst) end FileUtils.rm_rf legacy_pinned_kegs end |
