extend/pathname: fix type signature for write_env_script.
It needs to be more permissive.
This commit is contained in:
parent
53b900663a
commit
ea53fdc096
@ -289,15 +289,27 @@ class Pathname
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Writes an exec script that sets environment variables.
|
# Writes an exec script that sets environment variables.
|
||||||
sig { params(target: Pathname, args: T.any(T::Array[String], T::Hash[String, String]), env: T.nilable(T::Hash[String, String])).void }
|
sig {
|
||||||
def write_env_script(target, args, env = nil)
|
params(target: Pathname,
|
||||||
unless env
|
args_or_env: T.any(String, T::Array[String], T::Hash[String, String], T::Hash[Symbol, String]),
|
||||||
env = args
|
env: T.any(T::Hash[String, String], T::Hash[Symbol, String])).void
|
||||||
args = nil
|
}
|
||||||
|
def write_env_script(target, args_or_env, env = T.unsafe(nil))
|
||||||
|
args = if env.nil?
|
||||||
|
env = args_or_env if args_or_env.is_a?(Hash)
|
||||||
|
|
||||||
|
nil
|
||||||
|
elsif args_or_env.is_a?(Array)
|
||||||
|
args_or_env.join(" ")
|
||||||
|
else
|
||||||
|
T.cast(args_or_env, T.nilable(String))
|
||||||
end
|
end
|
||||||
|
|
||||||
env_export = +""
|
env_export = +""
|
||||||
env.each { |key, value| env_export << "#{key}=\"#{value}\" " }
|
env.each { |key, value| env_export << "#{key}=\"#{value}\" " }
|
||||||
|
|
||||||
dirname.mkpath
|
dirname.mkpath
|
||||||
|
|
||||||
write <<~SH
|
write <<~SH
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#{env_export}exec "#{target}" #{args} "$@"
|
#{env_export}exec "#{target}" #{args} "$@"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user