aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2013-01-01 17:26:50 +0000
committerMike McQuaid2013-01-02 09:28:15 +0000
commit755a2fbe52cb1938db1093f98d2b83f3f1701828 (patch)
treef59245dc9ddf7dd50ce67671919ad06754d9aa88
parentda0c0ae97ac3206bad9cc2819c46b13d08d4dfd7 (diff)
downloadbrew-755a2fbe52cb1938db1093f98d2b83f3f1701828.tar.bz2
Add caveats class and use in brew info.
Probably a better approach than reverted e721c7. Fixes Homebrew/homebrew#16604.
-rw-r--r--Library/Homebrew/caveats.rb85
-rw-r--r--Library/Homebrew/cmd/info.rb6
-rw-r--r--Library/Homebrew/formula_installer.rb90
3 files changed, 90 insertions, 91 deletions
diff --git a/Library/Homebrew/caveats.rb b/Library/Homebrew/caveats.rb
new file mode 100644
index 000000000..411acac84
--- /dev/null
+++ b/Library/Homebrew/caveats.rb
@@ -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
diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb
index a5da4e81d..ffbc93038 100644
--- a/Library/Homebrew/cmd/info.rb
+++ b/Library/Homebrew/cmd/info.rb
@@ -1,6 +1,7 @@
require 'formula'
require 'tab'
require 'keg'
+require 'caveats'
module Homebrew extend self
def info
@@ -119,10 +120,7 @@ module Homebrew extend self
Homebrew.dump_options_for_formula f
end
- unless f.caveats.to_s.strip.empty?
- ohai "Caveats"
- puts f.caveats
- end
+ Caveats.print f
rescue FormulaUnavailableError
# check for DIY installation
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 323fd359b..db54f9d60 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -3,6 +3,7 @@ require 'formula'
require 'keg'
require 'tab'
require 'bottles'
+require 'caveats'
class FormulaInstaller
attr :f
@@ -143,18 +144,7 @@ class FormulaInstaller
end
def caveats
- s = []
-
- 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?
+ if (not f.keg_only?) and ARGV.homebrew_developer?
audit_bin
audit_sbin
audit_lib
@@ -162,81 +152,7 @@ class FormulaInstaller
check_infopages
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?
+ Caveats.print f
end
def finish