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