diff options
| author | Max Howell | 2009-08-29 21:07:26 +0100 |
|---|---|---|
| committer | Max Howell | 2009-08-29 21:07:26 +0100 |
| commit | 65cb8ea09f1bc7be1eee024a8342e8e129d3b4d4 (patch) | |
| tree | 1340dc0ce1552bf1506d0fb6e0d76b62d7ff03c9 | |
| parent | f7d8003f3b605eb1c25b6f55f88b2bef49c89f8f (diff) | |
| download | brew-65cb8ea09f1bc7be1eee024a8342e8e129d3b4d4.tar.bz2 | |
brew unlink command
Closes Homebrew/homebrew#8
| -rw-r--r-- | Library/Homebrew/keg.rb | 13 | ||||
| -rwxr-xr-x | bin/brew | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 8ba55f5ee..ad744e840 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -28,6 +28,19 @@ class Keg <Pathname parent.rmdir_if_possible end + def unlink + n=0 + Pathname.new(self).find do |src| + next if src == self + dst=HOMEBREW_PREFIX+src.relative_path_from(self) + next unless dst.symlink? + dst.unlink + n+=1 + Find.prune if src.directory? + end + n + end + def link $n=0 $d=0 @@ -114,6 +114,9 @@ begin when 'unlink' ARGV.kegs.each {|keg| puts "#{keg.unlink} links removed for #{keg}"} + when 'unlink' + ARGV.kegs.each {|keg| puts "#{keg.unlink} links removed for #{keg}"} + when 'rm', 'uninstall', 'remove' ARGV.kegs.each do |keg| puts "Uninstalling #{keg}..." |
