Try non-nil params

This commit is contained in:
Douglas Eichelberger 2025-08-10 09:30:57 -07:00
parent 6c18f5c265
commit 899a6c5977
No known key found for this signature in database
GPG Key ID: F90193CBD547EB81

View File

@ -23,7 +23,7 @@ module Homebrew
PROCESS_TYPE_ADAPTIVE = :adaptive
KEEP_ALIVE_KEYS = [:always, :successful_exit, :crashed, :path].freeze
SOCKET_STRING_REGEX = %r{^([a-z]+)://(.+):([0-9]+)$}i
SOCKET_STRING_REGEX = %r{^(?<type>[a-z]+)://(?<host>.+):(?<port>[0-9]+)$}i
RunParam = T.type_alias { T.nilable(T.any(T::Array[T.any(String, Pathname)], String, Pathname)) }
Sockets = T.type_alias { T::Hash[Symbol, { host: String, port: String, type: String }] }
@ -107,8 +107,8 @@ module Homebrew
end
end
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
def working_dir(path = nil)
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
def working_dir(path = T.unsafe(nil))
if path
@working_dir = path.to_s
else
@ -116,8 +116,8 @@ module Homebrew
end
end
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
def root_dir(path = nil)
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
def root_dir(path = T.unsafe(nil))
if path
@root_dir = path.to_s
else
@ -125,8 +125,8 @@ module Homebrew
end
end
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
def input_path(path = nil)
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
def input_path(path = T.unsafe(nil))
if path
@input_path = path.to_s
else
@ -134,8 +134,8 @@ module Homebrew
end
end
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
def log_path(path = nil)
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
def log_path(path = T.unsafe(nil))
if path
@log_path = path.to_s
else
@ -143,8 +143,8 @@ module Homebrew
end
end
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
def error_log_path(path = nil)
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
def error_log_path(path = T.unsafe(nil))
if path
@error_log_path = path.to_s
else
@ -153,10 +153,10 @@ module Homebrew
end
sig {
params(value: T.nilable(T.any(T::Boolean, T::Hash[Symbol, T.untyped])))
params(value: T.any(T::Boolean, T::Hash[Symbol, T.untyped]))
.returns(T.nilable(T::Hash[Symbol, T.untyped]))
}
def keep_alive(value = nil)
def keep_alive(value = T.unsafe(nil))
case value
when nil
@keep_alive
@ -171,8 +171,8 @@ module Homebrew
end
end
sig { params(value: T.nilable(T::Boolean)).returns(T::Boolean) }
def require_root(value = nil)
sig { params(value: T::Boolean).returns(T::Boolean) }
def require_root(value = T.unsafe(nil))
if value.nil?
@require_root
else
@ -186,8 +186,8 @@ module Homebrew
@require_root.present? && @require_root == true
end
sig { params(value: T.nilable(T::Boolean)).returns(T.nilable(T::Boolean)) }
def run_at_load(value = nil)
sig { params(value: T::Boolean).returns(T.nilable(T::Boolean)) }
def run_at_load(value = T.unsafe(nil))
if value.nil?
@run_at_load
else
@ -196,32 +196,30 @@ module Homebrew
end
sig {
params(value: T.nilable(T.any(String, T::Hash[Symbol, String])))
params(value: T.any(String, T::Hash[Symbol, String]))
.returns(T::Hash[Symbol, T::Hash[Symbol, String]])
}
def sockets(value = nil)
def sockets(value = T.unsafe(nil))
return @sockets if value.nil?
@sockets = case value
value_hash = case value
when String
{ listeners: value }
when Hash
value
end.transform_values do |socket_string|
end
@sockets = T.must(value_hash).transform_values do |socket_string|
match = socket_string.match(SOCKET_STRING_REGEX)
raise TypeError, "Service#sockets a formatted socket definition as <type>://<host>:<port>" unless match
type = T.must(match[1])
host = T.must(match[2])
port = T.must(match[3])
begin
IPAddr.new(host)
IPAddr.new(match[:host])
rescue IPAddr::InvalidAddressError
raise TypeError, "Service#sockets expects a valid ipv4 or ipv6 host address"
end
{ host:, port:, type: }
{ host: match[:host], port: match[:port], type: match[:type] }
end
end
@ -231,8 +229,8 @@ module Homebrew
!@keep_alive.empty? && @keep_alive[:always] != false
end
sig { params(value: T.nilable(T::Boolean)).returns(T::Boolean) }
def launch_only_once(value = nil)
sig { params(value: T::Boolean).returns(T::Boolean) }
def launch_only_once(value = T.unsafe(nil))
if value.nil?
@launch_only_once
else
@ -240,17 +238,17 @@ module Homebrew
end
end
sig { params(value: T.nilable(Integer)).returns(T.nilable(Integer)) }
def restart_delay(value = nil)
if restart_delay
sig { params(value: Integer).returns(T.nilable(Integer)) }
def restart_delay(value = T.unsafe(nil))
if value
@restart_delay = value
else
@restart_delay
end
end
sig { params(value: T.nilable(Symbol)).returns(T.nilable(Symbol)) }
def process_type(value = nil)
sig { params(value: Symbol).returns(T.nilable(Symbol)) }
def process_type(value = T.unsafe(nil))
case value
when nil
@process_type
@ -263,8 +261,8 @@ module Homebrew
end
end
sig { params(value: T.nilable(Symbol)).returns(T.nilable(Symbol)) }
def run_type(value = nil)
sig { params(value: Symbol).returns(T.nilable(Symbol)) }
def run_type(value = T.unsafe(nil))
case value
when nil
@run_type
@ -275,8 +273,8 @@ module Homebrew
end
end
sig { params(value: T.nilable(Integer)).returns(T.nilable(Integer)) }
def interval(value = nil)
sig { params(value: Integer).returns(T.nilable(Integer)) }
def interval(value = T.unsafe(nil))
if value
@interval = value
else
@ -284,8 +282,8 @@ module Homebrew
end
end
sig { params(value: T.nilable(String)).returns(T::Hash[Symbol, T.any(Integer, String)]) }
def cron(value = nil)
sig { params(value: String).returns(T::Hash[Symbol, T.any(Integer, String)]) }
def cron(value = T.unsafe(nil))
if value
@cron = parse_cron(value)
else
@ -344,8 +342,8 @@ module Homebrew
@environment_variables = variables.transform_values(&:to_s)
end
sig { params(value: T.nilable(T::Boolean)).returns(T::Boolean) }
def macos_legacy_timers(value = nil)
sig { params(value: T::Boolean).returns(T::Boolean) }
def macos_legacy_timers(value = T.unsafe(nil))
if value.nil?
@macos_legacy_timers
else