class Escualo::Session::Remote

Public Class Methods

new(ssh, options) click to toggle source
Calls superclass method Escualo::Session::new
# File lib/escualo/session/remote_session.rb, line 2
def initialize(ssh, options)
  super(options)
  @ssh = ssh
end

Public Instance Methods

ask(command) click to toggle source
# File lib/escualo/session/remote_session.rb, line 16
def ask(command)
  out = ''
  @ssh.stream! wrap(command) do |_stream, data|
    out << data
  end
  out
end
exec!(command) click to toggle source
# File lib/escualo/session/remote_session.rb, line 11
def exec!(command)
  ask command
  nil
end
stream!(command) click to toggle source
# File lib/escualo/session/remote_session.rb, line 24
def stream!(command)
  command = wrap(command)
  @ssh.stream! command do |stream, data|
    if stream == :stdout
      $stdout.print data
    else
      $stderr.print data
    end
  end
end
upload!(file, destination) click to toggle source
# File lib/escualo/session/remote_session.rb, line 7
def upload!(file, destination)
  @ssh.scp.upload! file, destination
end

Private Instance Methods

wrap(command) click to toggle source
# File lib/escualo/session/remote_session.rb, line 37
  def wrap(command)
    "bash -i -s <<EOBASH
#{command.gsub('$', '\$')}
EOBASH"
  end