class Gitlab::QA::Docker::Command

def self.execute(cmd, mask_secrets: nil, &block)

def self.execute(cmd, mask_secrets: nil, &block)
  new(cmd, mask_secrets: mask_secrets).execute!(&block)
end

def <<(*args)

def <<(*args)
  tap { @args.concat(args) }
end

def ==(other)

def ==(other)
  to_s == other.to_s
end

def env(name, value)

def env(name, value)
  tap { @args.push(%(--env #{name}="#{value}")) }
end

def execute!(&block)

def execute!(&block)
  Docker::Shellout.new(self).execute!(&block)
end

def initialize(cmd = nil, mask_secrets: nil)

def initialize(cmd = nil, mask_secrets: nil)
  @args = Array(cmd)
  @mask_secrets = Array(mask_secrets)
end

def mask_secrets

Returns:
  • (String) - The masked command string
def mask_secrets
  @mask_secrets.each_with_object(to_s) { |secret, s| s.gsub!(secret, '*****') }
end

def name(identity)

def name(identity)
  tap { @args.push("--name #{identity}") }
end

def to_s

def to_s
  "docker #{@args.join(' ')}"
end

def volume(from, to, opt = :z)

def volume(from, to, opt = :z)
  tap { @args.push("--volume #{from}:#{to}:#{opt}") }
end