aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorMaxim Belkin2017-10-16 11:15:54 -0500
committerMaxim Belkin2017-10-16 11:15:54 -0500
commit336fbb5db2aa349022dae6892cab63a6dad4f2e1 (patch)
tree2bd9002a7f11288bf52a02ba58208963efc4cfee /Library/Homebrew/extend
parent5140c741f3544390972af45dfa64aa35f7aa7c9e (diff)
downloadbrew-336fbb5db2aa349022dae6892cab63a6dad4f2e1.tar.bz2
caveats: making plist_caveats macOS-only
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/os/caveats.rb1
-rw-r--r--Library/Homebrew/extend/os/linux/caveats.rb3
-rw-r--r--Library/Homebrew/extend/os/mac/caveats.rb46
3 files changed, 47 insertions, 3 deletions
diff --git a/Library/Homebrew/extend/os/caveats.rb b/Library/Homebrew/extend/os/caveats.rb
new file mode 100644
index 000000000..e67138087
--- /dev/null
+++ b/Library/Homebrew/extend/os/caveats.rb
@@ -0,0 +1 @@
+require "extend/os/mac/caveats" if OS.mac?
diff --git a/Library/Homebrew/extend/os/linux/caveats.rb b/Library/Homebrew/extend/os/linux/caveats.rb
deleted file mode 100644
index f30aead87..000000000
--- a/Library/Homebrew/extend/os/linux/caveats.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-class Caveats
- def plist_caveats; end
-end
diff --git a/Library/Homebrew/extend/os/mac/caveats.rb b/Library/Homebrew/extend/os/mac/caveats.rb
new file mode 100644
index 000000000..2398b1a81
--- /dev/null
+++ b/Library/Homebrew/extend/os/mac/caveats.rb
@@ -0,0 +1,46 @@
+class Caveats
+ def plist_caveats
+ s = []
+ if f.plist || (keg&.plist_installed?)
+ plist_domain = f.plist_path.basename(".plist")
+
+ # we readlink because this path probably doesn't exist since caveats
+ # occurs before the link step of installation
+ # Yosemite security measures mildly tighter rules:
+ # https://github.com/Homebrew/legacy-homebrew/issues/33815
+ if !plist_path.file? || !plist_path.symlink?
+ if f.plist_startup
+ s << "To have launchd start #{f.full_name} now and restart at startup:"
+ s << " sudo brew services start #{f.full_name}"
+ else
+ s << "To have launchd start #{f.full_name} now and restart at login:"
+ s << " brew services start #{f.full_name}"
+ end
+ # For startup plists, we cannot tell whether it's running on launchd,
+ # as it requires for `sudo launchctl list` to get real result.
+ elsif f.plist_startup
+ s << "To restart #{f.full_name} after an upgrade:"
+ s << " sudo brew services restart #{f.full_name}"
+ elsif Kernel.system "/bin/launchctl list #{plist_domain} &>/dev/null"
+ s << "To restart #{f.full_name} after an upgrade:"
+ s << " brew services restart #{f.full_name}"
+ else
+ s << "To start #{f.full_name}:"
+ s << " brew services start #{f.full_name}"
+ end
+
+ if f.plist_manual
+ s << "Or, if you don't want/need a background service you can just run:"
+ s << " #{f.plist_manual}"
+ end
+
+ # pbpaste is the system clipboard tool on macOS and fails with `tmux` by default
+ # check if this is being run under `tmux` to avoid failing
+ if ENV["TMUX"] && !quiet_system("/usr/bin/pbpaste")
+ s << "" << "WARNING: brew services will fail when run under tmux."
+ end
+ end
+ s.join("\n") + "\n" unless s.empty?
+ end
+
+end