aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xLibrary/Contributions/examples/brew-linkapps.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/Library/Contributions/examples/brew-linkapps.rb b/Library/Contributions/examples/brew-linkapps.rb
new file mode 100755
index 000000000..bcaf7a9e3
--- /dev/null
+++ b/Library/Contributions/examples/brew-linkapps.rb
@@ -0,0 +1,28 @@
+# Links any Applications (.app) found in installed prefixes to ~/Applications
+require "formula"
+
+unless File.exist? File.expand_path("~/Applications")
+ opoo File.expand_path("~/Applications")+" does not exist, stopping."
+ exit 1
+end
+
+HOMEBREW_CELLAR.subdirs.each do |keg|
+ next unless keg.subdirs
+ name = keg.basename.to_s
+
+ if ((f = Formula.factory(name)).installed? rescue false)
+ Dir["#{f.prefix}/*.app"].each do |p|
+ puts "Linking #{p}"
+ appname = File.basename(p)
+ target = File.expand_path("~/Applications")+"/"+appname
+ if File.exist? target
+ if File.symlink? target
+ system "rm", target
+ else
+ onoe "#{target} already exists, skipping."
+ end
+ end
+ system "ln", "-s", p, File.expand_path("~/Applications")
+ end
+ end
+end