class SSH
Public Class Methods
new(config)
click to toggle source
# File lib/ssh.rb, line 6 def initialize(config) @config = config @ssh = Net::SSH.start(@config[:host], @config[:user]) end
Public Instance Methods
close()
click to toggle source
# File lib/ssh.rb, line 37 def close @ssh.close end
exec!(command)
click to toggle source
# File lib/ssh.rb, line 11 def exec!(command) stdout_data = "" stderr_data = "" exit_code = nil @ssh.open_channel do |channel| channel.send_channel_request "shell" do |ch, success| unless success abort "FAILED to connect" end channel.on_data {|c,data| stdout_data+=data.to_s } channel.on_extended_data {|c,data| stderr_data+=data.to_s } channel.on_request("exit-status") {|c,data| exit_code = data.read_long } ch.send_data "#{command}\n" ch.send_data "exit\n" end end @ssh.loop if exit_code > 0 return false else return stdout_data.strip end end