class Rvm2::Shell::Runner::Ssh
Attributes
host[R]
last_status[R]
user[R]
Public Class Methods
new(host, user)
click to toggle source
# File lib/rvm2/shell/runner/ssh.rb, line 6 def initialize(host, user) @host = host @user = user end
Public Instance Methods
execute(command) { |data, nil| ... }
click to toggle source
TODO: make it run in one session
# File lib/rvm2/shell/runner/ssh.rb, line 12 def execute(command) @last_status = nil ssh.open_channel do |channel| channel.request_pty channel.exec command do |ch, success| channel.on_data do |ch, data| yield(data, nil) end channel.on_extended_data do |ch, type, data| yield(nil, data) end channel.on_request("exit-status") do |ch, data| @last_status = data.read_long end end channel.wait end ssh.loop @last_status end
ssh()
click to toggle source
# File lib/rvm2/shell/runner/ssh.rb, line 33 def ssh @ssh ||= Net::SSH.start(host, user) end