aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorLorenzo Manacorda2012-12-16 20:46:45 +0100
committerMike McQuaid2012-12-16 23:31:30 +0000
commitd23366ae9a39390a31f5c1a424209c8169cfa7cb (patch)
tree0e44138c940c76738286bc77b8b2ea29f81d1d55 /Library/Homebrew
parent3eedfd80249bc5e54a665656c4554d0f8db1ef3f (diff)
downloadbrew-d23366ae9a39390a31f5c1a424209c8169cfa7cb.tar.bz2
Add launchctl_instructions method
Closes Homebrew/homebrew#16604. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cmd/info.rb2
-rw-r--r--Library/Homebrew/formula.rb58
-rw-r--r--Library/Homebrew/formula_installer.rb55
3 files changed, 61 insertions, 54 deletions
diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb
index a5da4e81d..f35c004bb 100644
--- a/Library/Homebrew/cmd/info.rb
+++ b/Library/Homebrew/cmd/info.rb
@@ -124,6 +124,8 @@ module Homebrew extend self
puts f.caveats
end
+ f.launchctl_instructions
+
rescue FormulaUnavailableError
# check for DIY installation
d = HOMEBREW_PREFIX+name
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 337916a0a..76de2f5ce 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -115,6 +115,64 @@ class Formula
end
def rack; prefix.parent end
+ def launchctl_instructions
+ if plist or Keg.new(prefix).plist_installed?
+ destination = plist_startup ? '/Library/LaunchDaemons' \
+ : '~/Library/LaunchAgents'
+
+ plist_filename = plist_path.basename
+ plist_link = "#{destination}/#{plist_filename}"
+ plist_domain = plist_path.basename('.plist')
+ destination_path = Pathname.new File.expand_path destination
+ plist_path = destination_path/plist_filename
+ s = []
+
+ # 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 plist_startup
+ s << "To have launchd start #{name} at startup:"
+ s << " sudo mkdir -p #{destination}" unless destination_path.directory?
+ s << " sudo cp -fv #{HOMEBREW_PREFIX}/opt/#{name}/*.plist #{destination}"
+ else
+ s << "To have launchd start #{name} at login:"
+ s << " mkdir -p #{destination}" unless destination_path.directory?
+ s << " ln -sfv #{HOMEBREW_PREFIX}/opt/#{name}/*.plist #{destination}"
+ end
+ s << "Then to load #{name} now:"
+ if plist_startup
+ s << " sudo launchctl load #{plist_link}"
+ else
+ s << " launchctl load #{plist_link}"
+ end
+ if plist_manual
+ s << "Or, if you don't want/need launchctl, you can just run:"
+ s << " #{plist_manual}"
+ end
+ elsif Kernel.system "/bin/launchctl list #{plist_domain} &>/dev/null"
+ s << "You should reload #{name}:"
+ if plist_startup
+ s << " sudo launchctl unload #{plist_link}"
+ s << " sudo cp -fv #{HOMEBREW_PREFIX}/opt/#{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 #{name}:"
+ if plist_startup
+ s << " sudo launchctl load #{plist_link}"
+ else
+ s << " launchctl load #{plist_link}"
+ end
+ end
+
+ ohai 'Caveats', s
+
+ end
+ end
+
def bin; prefix+'bin' end
def doc; share+'doc'+name end
def include; prefix+'include' end
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 226910421..dd1450ec2 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -174,60 +174,7 @@ class FormulaInstaller
EOS
end
- if f.plist or keg.plist_installed?
- 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
- s = []
-
- # 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
-
- ohai 'Caveats', s
- end
+ f.launchctl_instructions
end
def finish