2010-06-09 12:09:34 -07:00
|
|
|
# Links any Applications (.app) found in installed prefixes to ~/Applications
|
2013-05-16 14:36:50 -05:00
|
|
|
require 'keg'
|
2010-06-09 12:09:34 -07:00
|
|
|
|
2013-03-03 15:47:27 +11:00
|
|
|
TARGET_DIR = ARGV.include?("--system") ? "/Applications" : File.expand_path("~/Applications")
|
2010-08-07 22:39:23 -07:00
|
|
|
|
2013-03-03 15:47:27 +11:00
|
|
|
unless File.exist? TARGET_DIR
|
|
|
|
opoo "#{TARGET_DIR} does not exist, stopping."
|
|
|
|
puts "Run `mkdir #{TARGET_DIR}` first."
|
2010-06-09 12:09:34 -07:00
|
|
|
exit 1
|
|
|
|
end
|
|
|
|
|
2013-05-16 14:36:50 -05:00
|
|
|
HOMEBREW_CELLAR.subdirs.each do |rack|
|
|
|
|
kegs = rack.subdirs.map { |d| Keg.new(d) }
|
|
|
|
next if kegs.empty?
|
2010-06-09 12:09:34 -07:00
|
|
|
|
2013-06-06 09:26:20 -05:00
|
|
|
keg = kegs.detect(&:linked?) || kegs.max {|a,b| a.version <=> b.version}
|
2013-05-16 14:36:50 -05:00
|
|
|
|
|
|
|
Dir["#{keg}/*.app", "#{keg}/bin/*.app", "#{keg}/libexec/*.app"].each do |app|
|
|
|
|
puts "Linking #{app}"
|
|
|
|
app_name = File.basename(app)
|
|
|
|
target = "#{TARGET_DIR}/#{app_name}"
|
|
|
|
|
|
|
|
if File.exist?(target) && File.symlink?(target)
|
|
|
|
system "rm", target
|
|
|
|
elsif File.exist?(target)
|
|
|
|
onoe "#{target} already exists, skipping."
|
|
|
|
next
|
2010-06-09 12:09:34 -07:00
|
|
|
end
|
2013-05-16 14:36:50 -05:00
|
|
|
system "ln", "-s", app, TARGET_DIR
|
2010-06-09 12:09:34 -07:00
|
|
|
end
|
|
|
|
end
|
2012-06-06 18:52:16 +08:00
|
|
|
|
2013-03-03 15:47:27 +11:00
|
|
|
puts "Finished linking. Find the links under #{TARGET_DIR}."
|