aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/unlinkapps.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/unlinkapps.rb b/Library/Homebrew/cmd/unlinkapps.rb
new file mode 100644
index 000000000..2f6a57e6e
--- /dev/null
+++ b/Library/Homebrew/cmd/unlinkapps.rb
@@ -0,0 +1,28 @@
+# Unlinks any Applications (.app) found in installed prefixes from /Applications
+require 'keg'
+
+module Homebrew extend self
+
+ def unlinkapps
+ target_dir = ARGV.include?("--local") ? File.expand_path("~/Applications") : "/Applications"
+
+ unless File.exist? target_dir
+ opoo "#{target_dir} does not exist, stopping."
+ puts "Run `mkdir #{target_dir}` first."
+ exit 1
+ end
+
+ cellar_apps = Dir[target_dir + '/*.app'].select do |app|
+ if File.symlink?(app) && File.readlink(app).match(HOMEBREW_CELLAR)
+ File.readlink app
+ end
+ end
+
+ cellar_apps.each do |app|
+ puts "Unlinking #{app}"
+ system "unlink", app
+ end
+
+ puts "Finished unlinking from #{target_dir}" if cellar_apps
+ end
+end