Return early from resolve_any_conflicts for non-symlinks

This commit is contained in:
Jack Nagel 2014-10-20 17:07:53 -05:00
parent 975f61d981
commit 05ba3f0e34

View File

@ -325,12 +325,14 @@ class Keg
private
def resolve_any_conflicts dst, mode
return unless dst.symlink?
src = dst.resolved_path
# src itself may be a symlink, so check lstat to ensure we are dealing with
# a directory, and not a symlink pointing at a directory (which needs to be
# treated as a file). In other words, we only want to resolve one symlink.
# If it isn't a directory, make_relative_symlink will raise an exception.
if dst.symlink? && src.lstat.directory?
if src.lstat.directory?
keg = Keg.for(src)
dst.unlink unless mode.dry_run
keg.link_dir(src, mode) { :mkpath }