Skip to content
Snippets Groups Projects
Commit 907ac796 authored by Adam Vandenberg's avatar Adam Vandenberg
Browse files

make linkapps official

parent e8a89206
No related branches found
No related tags found
No related merge requests found
# Links any Applications (.app) found in installed prefixes to /Applications
require 'keg'
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
HOMEBREW_CELLAR.subdirs.each do |rack|
kegs = rack.subdirs.map { |d| Keg.new(d) }
next if kegs.empty?
keg = kegs.detect(&:linked?) || kegs.max {|a,b| a.version <=> b.version}
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)
onoe "#{target} already exists, skipping."
next
end
system "ln", "-sf", app, TARGET_DIR
end
end
puts "Finished linking. Find the links under #{TARGET_DIR}."
# Links any Applications (.app) found in installed prefixes to /Applications
require 'keg'
module Homebrew extend self
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
HOMEBREW_CELLAR.subdirs.each do |rack|
kegs = rack.subdirs.map { |d| Keg.new(d) }
next if kegs.empty?
keg = kegs.detect(&:linked?) || kegs.max {|a,b| a.version <=> b.version}
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)
onoe "#{target} already exists, skipping."
next
end
system "ln", "-sf", app, target_dir
end
end
puts "Finished linking. Find the links under #{target_dir}."
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment