diff --git a/Library/Homebrew/extend/os/mac/caveats.rb b/Library/Homebrew/extend/os/mac/caveats.rb index 6f9bc6639c..7abc7655ad 100644 --- a/Library/Homebrew/extend/os/mac/caveats.rb +++ b/Library/Homebrew/extend/os/mac/caveats.rb @@ -37,7 +37,14 @@ class Caveats if f.plist_manual || f.service? command = if f.service? - f.service.command.join(" ") + f.service + .command + .map do |arg| + next arg unless arg.match?(/\s/) + + # quote multi-word arguments + "'#{arg}'" + end.join(" ") else f.plist_manual end diff --git a/Library/Homebrew/test/caveats_spec.rb b/Library/Homebrew/test/caveats_spec.rb index f6d76521ac..571e471016 100644 --- a/Library/Homebrew/test/caveats_spec.rb +++ b/Library/Homebrew/test/caveats_spec.rb @@ -128,6 +128,20 @@ describe Caveats do expect(caveats).to include("background service") end + it "wraps multi-word service parameters" do + f = formula do + url "foo-1.0" + service do + run [bin/"nginx", "-g", "daemon off;"] + end + end + caveats = described_class.new(f).caveats + + expect(f.service?).to eq(true) + expect(caveats).to include("#{f.bin}/nginx -g 'daemon off;'") + expect(caveats).to include("background service") + end + it "warns about brew failing under tmux" do f = formula do url "foo-1.0"