diff --git a/lib/mrsk/commands/builder/base.rb b/lib/mrsk/commands/builder/base.rb index a811afbd..d08e8a87 100644 --- a/lib/mrsk/commands/builder/base.rb +++ b/lib/mrsk/commands/builder/base.rb @@ -1,8 +1,7 @@ require "mrsk/commands/base" class Mrsk::Commands::Builder::Base < Mrsk::Commands::Base - delegate :argumentize, :secretize, to: Mrsk::Configuration - delegate :secretize, to: Mrsk::Utils + delegate :argumentize, to: Mrsk::Utils def pull docker :pull, config.absolute_image diff --git a/lib/mrsk/configuration.rb b/lib/mrsk/configuration.rb index ad5b1225..0a097480 100644 --- a/lib/mrsk/configuration.rb +++ b/lib/mrsk/configuration.rb @@ -7,6 +7,7 @@ require "mrsk/utils" class Mrsk::Configuration delegate :service, :image, :servers, :env, :labels, :registry, :builder, to: :config, allow_nil: true + delegate :argumentize, to: Mrsk::Utils class << self def create_from(base_config_file, destination: nil) @@ -18,10 +19,6 @@ class Mrsk::Configuration end) end - def argumentize(argument, attributes, redacted: false) - attributes.flat_map { |k, v| [ argument, redacted ? Mrsk::Utils.redact("#{k}=#{v}") : "#{k}=#{v}" ] } - end - private def load_config_file(file) if file.exist? @@ -94,7 +91,7 @@ class Mrsk::Configuration def env_args if config.env.present? - self.class.argumentize "-e", config.env + argumentize "-e", config.env else [] end diff --git a/lib/mrsk/configuration/role.rb b/lib/mrsk/configuration/role.rb index 9051a571..6372372f 100644 --- a/lib/mrsk/configuration/role.rb +++ b/lib/mrsk/configuration/role.rb @@ -1,5 +1,5 @@ class Mrsk::Configuration::Role - delegate :argumentize, to: Mrsk::Configuration + delegate :argumentize, to: Mrsk::Utils attr_accessor :name diff --git a/lib/mrsk/utils.rb b/lib/mrsk/utils.rb index 75e2f226..10d8323b 100644 --- a/lib/mrsk/utils.rb +++ b/lib/mrsk/utils.rb @@ -1,6 +1,11 @@ module Mrsk::Utils extend self + # 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}" ] } + end + # Copied from SSHKit::Backend::Abstract#redact to be available inside Commands classes def redact(arg) # Used in execute_command to hide redact() args a user passes in arg.to_s.extend(SSHKit::Redaction) # to_s due to our inability to extend Integer, etc