Add secret envs
This commit is contained in:
@@ -81,7 +81,11 @@ class Mrsk::Configuration
|
||||
|
||||
def env_args
|
||||
if config.env.present?
|
||||
argumentize "-e", config.env
|
||||
if config.env["secret"].present?
|
||||
argumentize("-e", expand_env_secrets, redacted: true) + argumentize("-e", config.env["clear"])
|
||||
else
|
||||
argumentize "-e", config.env
|
||||
end
|
||||
else
|
||||
[]
|
||||
end
|
||||
@@ -134,6 +138,10 @@ class Mrsk::Configuration
|
||||
def role_names
|
||||
config.servers.is_a?(Array) ? [ "web" ] : config.servers.keys.sort
|
||||
end
|
||||
|
||||
def expand_env_secrets
|
||||
config.env["secret"].to_h { |key| [ key, ENV[key] ] }
|
||||
end
|
||||
end
|
||||
|
||||
require "mrsk/configuration/role"
|
||||
|
||||
@@ -3,7 +3,7 @@ module Mrsk::Utils
|
||||
|
||||
# Return a list of shell arguments using the same named argument against the passed attributes.
|
||||
def argumentize(argument, attributes, redacted: false)
|
||||
attributes.flat_map { |k, v| [ argument, redacted ? redact("#{k}=#{v}") : "#{k}=#{v}" ] }
|
||||
Array(attributes).flat_map { |k, v| [ argument, redacted ? redact("#{k}=#{v}") : "#{k}=#{v}" ] }
|
||||
end
|
||||
|
||||
# Copied from SSHKit::Backend::Abstract#redact to be available inside Commands classes
|
||||
|
||||
Reference in New Issue
Block a user