diff --git a/Library/Homebrew/service.rb b/Library/Homebrew/service.rb index a386bed35e..a7dd6625c2 100644 --- a/Library/Homebrew/service.rb +++ b/Library/Homebrew/service.rb @@ -383,7 +383,7 @@ module Homebrew sig { returns(T.nilable(T::Array[String])) } def command - @run&.map(&:to_s) + @run&.map(&:to_s)&.map { |arg| arg.start_with?("~") ? File.expand_path(arg) : arg } end sig { returns(T::Boolean) } diff --git a/Library/Homebrew/test/service_spec.rb b/Library/Homebrew/test/service_spec.rb index d36c42b9cb..324a373086 100644 --- a/Library/Homebrew/test/service_spec.rb +++ b/Library/Homebrew/test/service_spec.rb @@ -591,7 +591,7 @@ describe Homebrew::Service do it "expands paths" do f = stub_formula do service do - run opt_bin/"beanstalkd" + run [opt_sbin/"sleepwatcher", "-V", "-s", "~/.sleep", "-w", "~/.wakeup"] working_dir "~" end end @@ -614,7 +614,12 @@ describe Homebrew::Service do \t \tProgramArguments \t - \t\t#{HOMEBREW_PREFIX}/opt/formula_name/bin/beanstalkd + \t\t#{HOMEBREW_PREFIX}/opt/formula_name/sbin/sleepwatcher + \t\t-V + \t\t-s + \t\t#{Dir.home}/.sleep + \t\t-w + \t\t#{Dir.home}/.wakeup \t \tRunAtLoad \t