brew/Library/Homebrew/caveats.rb

86 lines
2.9 KiB
Ruby
Raw Normal View History

class Caveats
def self.print f
s = []
unless f.caveats.to_s.strip.empty?
s << f.caveats
end
keg = Keg.new(f.prefix) rescue nil
keg ||= Keg.new(f.opt_prefix.realpath) rescue nil
keg ||= Keg.new(f.linked_keg.realpath) rescue nil
if keg and keg.completion_installed? :bash
s << "\n" unless s.empty?
s << <<-EOS.undent
Bash completion has been installed to:
#{HOMEBREW_PREFIX}/etc/bash_completion.d
EOS
end
if keg and keg.completion_installed? :zsh
s << "\n" unless s.empty?
s << <<-EOS.undent
zsh completion has been installed to:
#{HOMEBREW_PREFIX}/share/zsh/site-functions
EOS
end
if f.plist or (keg and keg.plist_installed?)
s << "\n" unless s.empty?
destination = f.plist_startup ? '/Library/LaunchDaemons' \
: '~/Library/LaunchAgents'
plist_filename = f.plist_path.basename
plist_link = "#{destination}/#{plist_filename}"
plist_domain = f.plist_path.basename('.plist')
destination_path = Pathname.new File.expand_path destination
plist_path = destination_path/plist_filename
# we readlink because this path probably doesn't exist since caveats
# occurs before the link step of installation
if (not plist_path.file?) and (not plist_path.symlink?)
if f.plist_startup
s << "To have launchd start #{f.name} at startup:"
s << " sudo mkdir -p #{destination}" unless destination_path.directory?
s << " sudo cp -fv #{HOMEBREW_PREFIX}/opt/#{f.name}/*.plist #{destination}"
else
s << "To have launchd start #{f.name} at login:"
s << " mkdir -p #{destination}" unless destination_path.directory?
s << " ln -sfv #{HOMEBREW_PREFIX}/opt/#{f.name}/*.plist #{destination}"
end
s << "Then to load #{f.name} now:"
if f.plist_startup
s << " sudo launchctl load #{plist_link}"
else
s << " launchctl load #{plist_link}"
end
if f.plist_manual
s << "Or, if you don't want/need launchctl, you can just run:"
s << " #{f.plist_manual}"
end
elsif Kernel.system "/bin/launchctl list #{plist_domain} &>/dev/null"
s << "You should reload #{f.name}:"
if f.plist_startup
s << " sudo launchctl unload #{plist_link}"
s << " sudo cp -fv #{HOMEBREW_PREFIX}/opt/#{f.name}/*.plist #{destination}"
s << " sudo launchctl load #{plist_link}"
else
s << " launchctl unload #{plist_link}"
s << " launchctl load #{plist_link}"
end
else
s << "To load #{f.name}:"
if f.plist_startup
s << " sudo launchctl load #{plist_link}"
else
s << " launchctl load #{plist_link}"
end
end
end
ohai 'Caveats', s unless s.empty?
end
end