aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2014-04-05 12:17:19 -0500
committerJack Nagel2014-04-05 12:17:19 -0500
commita26601dc2b9ef33491e0df50e64899b823c56b78 (patch)
tree767f896aea23999a5f4b0598298f5bd08609b573
parentbfeb0a491345bbe231de7009f6b6d8fe8d17634b (diff)
downloadhomebrew-a26601dc2b9ef33491e0df50e64899b823c56b78.tar.bz2
Avoid realpath where it is not necessary
Symlinks in opt and LinkedKegs point directly at a keg in the cellar, so only resolving one symlink should suffice, and make it clear what path we are actually interested in.
-rwxr-xr-xLibrary/Homebrew/build.rb2
-rw-r--r--Library/Homebrew/caveats.rb2
-rw-r--r--Library/Homebrew/cmd/reinstall.rb4
-rw-r--r--Library/Homebrew/cmd/upgrade.rb2
-rw-r--r--Library/Homebrew/extend/ARGV.rb4
-rw-r--r--Library/Homebrew/formula.rb2
-rw-r--r--Library/Homebrew/formula_installer.rb6
-rw-r--r--Library/Homebrew/keg.rb4
8 files changed, 13 insertions, 13 deletions
diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb
index 6e873bcb5..b9ff6703a 100755
--- a/Library/Homebrew/build.rb
+++ b/Library/Homebrew/build.rb
@@ -213,7 +213,7 @@ end
def fixopt f
path = if f.linked_keg.directory? and f.linked_keg.symlink?
- f.linked_keg.realpath
+ f.linked_keg.resolved_path
elsif f.prefix.directory?
f.prefix
elsif (kids = f.rack.children).size == 1 and kids.first.directory?
diff --git a/Library/Homebrew/caveats.rb b/Library/Homebrew/caveats.rb
index 26cb4cee4..a876a716c 100644
--- a/Library/Homebrew/caveats.rb
+++ b/Library/Homebrew/caveats.rb
@@ -25,7 +25,7 @@ class Caveats
def keg
@keg ||= [f.prefix, f.opt_prefix, f.linked_keg].map do |d|
- Keg.new(d.realpath) rescue nil
+ Keg.new(d.resolved_path) rescue nil
end.compact.first
end
diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb
index 393662b0c..24bffc5c5 100644
--- a/Library/Homebrew/cmd/reinstall.rb
+++ b/Library/Homebrew/cmd/reinstall.rb
@@ -13,8 +13,8 @@ module Homebrew extend self
notice += " with #{options * ", "}" unless options.empty?
oh1 notice
- if (opt_link = f.opt_prefix).exist?
- keg = Keg.new(opt_link.realpath)
+ if f.opt_prefix.directory?
+ keg = Keg.new(f.opt_prefix.resolved_path)
backup keg
end
diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb
index ece2431ff..205de517d 100644
--- a/Library/Homebrew/cmd/upgrade.rb
+++ b/Library/Homebrew/cmd/upgrade.rb
@@ -54,7 +54,7 @@ module Homebrew extend self
end
def upgrade_formula f
- outdated_keg = Keg.new(f.linked_keg.realpath) if f.linked_keg.directory?
+ outdated_keg = Keg.new(f.linked_keg.resolved_path) if f.linked_keg.directory?
fi = FormulaInstaller.new(f)
fi.options = Tab.for_formula(f).used_options
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb
index 7e331752b..6923c2faf 100644
--- a/Library/Homebrew/extend/ARGV.rb
+++ b/Library/Homebrew/extend/ARGV.rb
@@ -35,9 +35,9 @@ module HomebrewArgvExtension
opt_prefix = HOMEBREW_PREFIX/"opt"/name
if opt_prefix.symlink? && opt_prefix.directory?
- Keg.new(opt_prefix.realpath)
+ Keg.new(opt_prefix.resolved_path)
elsif linked_keg_ref.symlink? && linked_keg_ref.directory?
- Keg.new(linked_keg_ref.realpath)
+ Keg.new(linked_keg_ref.resolved_path)
elsif dirs.length == 1
Keg.new(dirs.first)
elsif (prefix = Formula.factory(canonical_name).prefix).directory?
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 4dcd2a7c2..9c83a6523 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -493,7 +493,7 @@ class Formula
},
"revision" => revision,
"installed" => [],
- "linked_keg" => (linked_keg.realpath.basename.to_s if linked_keg.exist?),
+ "linked_keg" => (linked_keg.resolved_path.basename.to_s if linked_keg.exist?),
"keg_only" => keg_only?,
"dependencies" => deps.map(&:name),
"conflicts_with" => conflicts.map(&:name),
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 1b20f8c0f..0bd71c08a 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -147,7 +147,7 @@ class FormulaInstaller
if f.linked_keg.directory?
# some other version is already installed *and* linked
raise CannotInstallFormulaError, <<-EOS.undent
- #{f}-#{f.linked_keg.realpath.basename} already installed
+ #{f}-#{f.linked_keg.resolved_path.basename} already installed
To install this version, first `brew unlink #{f}'
EOS
end
@@ -360,7 +360,7 @@ class FormulaInstaller
tab = Tab.for_formula(df)
if df.linked_keg.directory?
- linked_keg = Keg.new(df.linked_keg.realpath)
+ linked_keg = Keg.new(df.linked_keg.resolved_path)
linked_keg.unlink
end
@@ -545,7 +545,7 @@ class FormulaInstaller
end
def link
- if f.linked_keg.directory? and f.linked_keg.realpath == f.prefix
+ if f.linked_keg.directory? and f.linked_keg.resolved_path == f.prefix
opoo "This keg was marked linked already, continuing anyway"
# otherwise Keg.link will bail
f.linked_keg.unlink
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index 3ec28136c..2287df465 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -87,7 +87,7 @@ class Keg < Pathname
end
def linked?
- linked_keg_record.directory? and self == linked_keg_record.realpath
+ linked_keg_record.directory? && self == linked_keg_record.resolved_path
end
def completion_installed? shell
@@ -125,7 +125,7 @@ class Keg < Pathname
end
def link mode=OpenStruct.new
- raise "Cannot link #{fname}\nAnother version is already linked: #{linked_keg_record.realpath}" if linked_keg_record.directory?
+ raise "Cannot link #{fname}\nAnother version is already linked: #{linked_keg_record.resolved_path}" if linked_keg_record.directory?
ObserverPathnameExtension.reset_counts!