aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorTeo Ljungberg2013-09-21 17:11:25 +0200
committerAdam Vandenberg2013-10-29 21:04:25 -0700
commita0ee1a167ea67a19355bdeabcd66c989add649b4 (patch)
tree55a3c2b81b1b198145900f43643a0dd88fbb8390 /Library
parent880d7cab34cc95abeaee4031aaa03fe76cbb986b (diff)
downloadhomebrew-a0ee1a167ea67a19355bdeabcd66c989add649b4.tar.bz2
New command: `brew unlinkapps`
The name is pretty self explanatory, it unlinks all installed applications found under `brew --prefix` from either `~/Applications` or `/Applications` Closes #22729. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
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