Add caveats class and use in brew info.
Probably a better approach than reverted e721c7. Fixes Homebrew/homebrew#16604.
This commit is contained in:
parent
da0c0ae97a
commit
755a2fbe52
85
Library/Homebrew/caveats.rb
Normal file
85
Library/Homebrew/caveats.rb
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
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
|
||||||
@ -1,6 +1,7 @@
|
|||||||
require 'formula'
|
require 'formula'
|
||||||
require 'tab'
|
require 'tab'
|
||||||
require 'keg'
|
require 'keg'
|
||||||
|
require 'caveats'
|
||||||
|
|
||||||
module Homebrew extend self
|
module Homebrew extend self
|
||||||
def info
|
def info
|
||||||
@ -119,10 +120,7 @@ module Homebrew extend self
|
|||||||
Homebrew.dump_options_for_formula f
|
Homebrew.dump_options_for_formula f
|
||||||
end
|
end
|
||||||
|
|
||||||
unless f.caveats.to_s.strip.empty?
|
Caveats.print f
|
||||||
ohai "Caveats"
|
|
||||||
puts f.caveats
|
|
||||||
end
|
|
||||||
|
|
||||||
rescue FormulaUnavailableError
|
rescue FormulaUnavailableError
|
||||||
# check for DIY installation
|
# check for DIY installation
|
||||||
|
|||||||
@ -3,6 +3,7 @@ require 'formula'
|
|||||||
require 'keg'
|
require 'keg'
|
||||||
require 'tab'
|
require 'tab'
|
||||||
require 'bottles'
|
require 'bottles'
|
||||||
|
require 'caveats'
|
||||||
|
|
||||||
class FormulaInstaller
|
class FormulaInstaller
|
||||||
attr :f
|
attr :f
|
||||||
@ -143,18 +144,7 @@ class FormulaInstaller
|
|||||||
end
|
end
|
||||||
|
|
||||||
def caveats
|
def caveats
|
||||||
s = []
|
if (not f.keg_only?) and ARGV.homebrew_developer?
|
||||||
|
|
||||||
unless f.caveats.to_s.strip.empty?
|
|
||||||
s << f.caveats
|
|
||||||
@show_summary_heading = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if f.keg_only?
|
|
||||||
s << "\n" unless s.empty?
|
|
||||||
s << f.keg_only_text
|
|
||||||
@show_summary_heading = true
|
|
||||||
elsif ARGV.homebrew_developer?
|
|
||||||
audit_bin
|
audit_bin
|
||||||
audit_sbin
|
audit_sbin
|
||||||
audit_lib
|
audit_lib
|
||||||
@ -162,81 +152,7 @@ class FormulaInstaller
|
|||||||
check_infopages
|
check_infopages
|
||||||
end
|
end
|
||||||
|
|
||||||
keg = Keg.new(f.prefix) rescue nil
|
Caveats.print f
|
||||||
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
|
||||||
|
|
||||||
def finish
|
def finish
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user