class Gitlab::QA::Docker::Command

Attributes

args[R]

Public Class Methods

execute(cmd, mask_secrets: nil, &block) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 51
def self.execute(cmd, mask_secrets: nil, &block)
  new(cmd, mask_secrets: mask_secrets).execute!(&block)
end
new(cmd = nil, mask_secrets: nil) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 7
def initialize(cmd = nil, mask_secrets: nil)
  @args = Array(cmd)
  @mask_secrets = Array(mask_secrets)
end

Public Instance Methods

<<(*args) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 12
def <<(*args)
  tap { @args.concat(args) }
end
==(other) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 43
def ==(other)
  to_s == other.to_s
end
env(name, value) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 24
def env(name, value)
  tap { @args.push(%(--env #{name}="#{value}")) }
end
execute!(&block) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 47
def execute!(&block)
  Docker::Shellout.new(self).execute!(&block)
end
mask_secrets() click to toggle source

Returns a masked string form of a Command

@example

Command.new('a docker command', mask_secrets: 'command').mask_secrets #=> 'a docker *****'
Command.new('a docker command', mask_secrets: %w[docker command]).mask_secrets #=> 'a ***** *****'

@return [String] The masked command string

# File lib/gitlab/qa/docker/command.rb, line 39
def mask_secrets
  @mask_secrets.each_with_object(to_s) { |secret, s| s.gsub!(secret, '*****') }
end
name(identity) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 20
def name(identity)
  tap { @args.push("--name #{identity}") }
end
to_s() click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 28
def to_s
  "docker #{@args.join(' ')}"
end
volume(from, to, opt = :z) click to toggle source
# File lib/gitlab/qa/docker/command.rb, line 16
def volume(from, to, opt = :z)
  tap { @args.push("--volume #{from}:#{to}:#{opt}") }
end