module DockerCore::Process

Public Class Methods

capture(*arguments, sudo: SUDO, throw: false, wait: 0, strip: true, echo: false) click to toggle source

@param [Array] arguments @param [Boolean, String] sudo @param [Boolean] throw @param [Numeric] wait @param [Boolean] strip @param [Boolean] echo

# File lib/docker_core.rb, line 355
def self.capture(*arguments, sudo: SUDO, throw: false, wait: 0, strip: true, echo: false)
  begin
    command = self.command(*arguments, sudo: sudo)

    if echo
      Color.echo(": #{command}", Color::YELLOW)
    end

    data = `#{command}`
    result = strip ? "#{data}".strip : data
    self.wait(wait)
    return result
  rescue
    raise unless throw
    return ''
  end
end
command(*arguments, sudo: SUDO) click to toggle source

@param [Array] arguments @param [Boolean, String] sudo

# File lib/docker_core.rb, line 337
def self.command(*arguments, sudo: SUDO)
  if true == sudo
    arguments.unshift('sudo')
  end

  if sudo.is_a?(String) && false == "#{sudo}".empty?
    arguments.unshift('su-exec', sudo)
  end

  return Paser.arguments(*arguments).join(' ')
end
execute(*arguments, sudo: SUDO, echo: true) click to toggle source

@param [Array] arguments @param [Boolean, String] sudo

# File lib/docker_core.rb, line 392
def self.execute(*arguments, sudo: SUDO, echo: true)
  command = self.command(*arguments, sudo: sudo)

  if echo
    Color.echo("= #{command}", Color::CYAN)
  end

  exec(command)
end
invoke(title, delegate, *arguments) click to toggle source

@param [String] title @param [Method] delegate @param [Array] arguments

# File lib/docker_core.rb, line 405
def self.invoke(title, delegate, *arguments)
  color = Color::YELLOW
  Color.echo("> #{title}", color)
  delegate.call(*arguments)
  Color.echo("< #{title}", color)
end
run(*arguments, sudo: SUDO, throw: true, wait: 0, echo: true) click to toggle source

@param [Array] arguments @param [Boolean, String] sudo @param [Boolean] throw @param [Numeric] wait @param [Boolean] echo

# File lib/docker_core.rb, line 378
def self.run(*arguments, sudo: SUDO, throw: true, wait: 0, echo: true)
  command = self.command(*arguments, sudo: sudo)

  if echo
    Color.echo("+ #{command}", Color::GREEN)
  end

  result = system(command, exception: throw)
  self.wait(wait)
  return result
end
wait(second = 0) click to toggle source

@param [Numeric] second

# File lib/docker_core.rb, line 324
def self.wait(second = 0)
  if second.is_a?(Numeric)
    if 0 > second
      return sleep
    end
    if 0 < second
      return sleep(second)
    end
  end
end