2013-09-17 06:55:13 -07:00
|
|
|
# Links any Applications (.app) found in installed prefixes to /Applications
|
2015-08-03 13:09:07 +01:00
|
|
|
require "keg"
|
2015-08-13 20:35:22 +08:00
|
|
|
require "formula"
|
2013-09-17 06:55:13 -07:00
|
|
|
|
2014-06-18 22:41:47 -05:00
|
|
|
module Homebrew
|
2013-09-17 06:55:13 -07:00
|
|
|
def linkapps
|
|
|
|
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
|
|
|
|
|
2014-12-18 15:13:04 +08:00
|
|
|
if ARGV.named.empty?
|
2015-08-13 20:35:22 +08:00
|
|
|
kegs = Formula.racks.map do |rack|
|
2014-12-18 15:13:04 +08:00
|
|
|
keg = rack.subdirs.map { |d| Keg.new(d) }
|
|
|
|
next if keg.empty?
|
2015-08-03 13:09:07 +01:00
|
|
|
keg.detect(&:linked?) || keg.max { |a, b| a.version <=> b.version }
|
2014-12-18 15:13:04 +08:00
|
|
|
end
|
|
|
|
else
|
|
|
|
kegs = ARGV.kegs
|
|
|
|
end
|
2013-09-17 06:55:13 -07:00
|
|
|
|
2014-12-18 15:13:04 +08:00
|
|
|
kegs.each do |keg|
|
2015-10-20 07:05:21 +02:00
|
|
|
keg.apps.each do |app|
|
2015-04-17 02:08:55 +01:00
|
|
|
puts "Linking #{app} to #{target_dir}."
|
2015-10-20 07:05:21 +02:00
|
|
|
target = "#{target_dir}/#{app.basename}"
|
2013-09-17 06:55:13 -07:00
|
|
|
|
|
|
|
if File.exist?(target) && !File.symlink?(target)
|
|
|
|
onoe "#{target} already exists, skipping."
|
|
|
|
next
|
|
|
|
end
|
2015-04-17 02:08:55 +01:00
|
|
|
|
2013-09-17 06:55:13 -07:00
|
|
|
system "ln", "-sf", app, target_dir
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|