From 3ce5737425488d0199a0146af7d85ae448221a13 Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Sat, 22 May 2021 10:43:39 +0200 Subject: [PATCH] service: ensure environment variables are strings --- Library/Homebrew/service.rb | 6 ++---- Library/Homebrew/test/service_spec.rb | 4 +++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/service.rb b/Library/Homebrew/service.rb index 11673f76e6..fe4c976cbd 100644 --- a/Library/Homebrew/service.rb +++ b/Library/Homebrew/service.rb @@ -135,13 +135,11 @@ module Homebrew end end - sig { params(variables: T.nilable(T::Hash[String, String])).returns(T.nilable(T::Hash[String, String])) } + sig { params(variables: T::Hash[String, String]).returns(T.nilable(T::Hash[String, String])) } def environment_variables(variables = {}) case T.unsafe(variables) - when nil - @environment_variables when Hash - @environment_variables = variables + @environment_variables = variables.transform_values(&:to_s) else raise TypeError, "Service#environment_variables expects a hash" end diff --git a/Library/Homebrew/test/service_spec.rb b/Library/Homebrew/test/service_spec.rb index 44b0869cc0..fe053c8589 100644 --- a/Library/Homebrew/test/service_spec.rb +++ b/Library/Homebrew/test/service_spec.rb @@ -69,7 +69,7 @@ describe Homebrew::Service do f.class.service do run [opt_bin/"beanstalkd", "test"] run_type :immediate - environment_variables PATH: std_service_path_env, FOO: "BAR" + environment_variables PATH: std_service_path_env, FOO: "BAR", ETC_DIR: etc/"beanstalkd" error_log_path var/"log/beanstalkd.error.log" log_path var/"log/beanstalkd.log" input_path var/"in/beanstalkd" @@ -88,6 +88,8 @@ describe Homebrew::Service do \tEnvironmentVariables \t + \t\tETC_DIR + \t\t#{HOMEBREW_PREFIX}/etc/beanstalkd \t\tFOO \t\tBAR \t\tPATH