Skip to content
Snippets Groups Projects
Commit fae4cbd9 authored by Ori Peleg's avatar Ori Peleg Committed by Adam Vandenberg
Browse files

linkapp: create Finder aliases


Symlinks to apps don't play well with Spotlight, but Finder alises do,
so let's create them instead.

Closes Homebrew/homebrew#14821.

Signed-off-by: default avatarAdam Vandenberg <flangy@gmail.com>
parent 192e6e05
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,19 @@ unless File.exist? HOME_APPS
exit 1
end
FINDER_ALIAS_MAGIC_PREFIX = "book\x00\x00\x00\x00mark\x00\x00\x00\x00"
def finder_alias?(filename)
return false if not File.file? filename
File.open(filename) do |f|
return f.read(FINDER_ALIAS_MAGIC_PREFIX.length) == FINDER_ALIAS_MAGIC_PREFIX
end
end
def create_finder_alias(from, to)
system %Q{osascript -e 'tell application "Finder" to make alias file to POSIX file "#{from}" at POSIX file "#{to}"' > /dev/null}
end
HOMEBREW_CELLAR.subdirs.each do |keg|
next unless keg.subdirs
name = keg.basename.to_s
......@@ -16,16 +29,16 @@ HOMEBREW_CELLAR.subdirs.each do |keg|
if ((f = Formula.factory(name)).installed? rescue false)
Dir["#{f.installed_prefix}/*.app", "#{f.installed_prefix}/bin/*.app", "#{f.installed_prefix}/libexec/*.app"].each do |p|
puts "Linking #{p}"
appname = File.basename(p)
appname = File.basename(p, ".app")
target = HOME_APPS+"/"+appname
if File.exist? target
if File.symlink? target
if File.symlink? target or finder_alias? target
system "rm", target
else
onoe "#{target} already exists, skipping."
end
end
system "ln", "-s", p, HOME_APPS
create_finder_alias(p, HOME_APPS)
end
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