33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/mofa/mofa_cmd.rb', line 33
def ssh_exec!(ssh, command)
stdout_data = ''
stderr_data = ''
exit_code = nil
exit_signal = nil
ssh.open_channel do |channel|
channel.exec(command) do |_ch, success|
unless success
abort "FAILED: couldn't execute command (ssh.channel.exec)"
end
channel.on_data do |_ch, data|
stdout_data += data
end
channel.on_extended_data do |_ch, _type, data|
stderr_data += data
end
channel.on_request('exit-status') do |_ch, data|
exit_code = data.read_long
end
channel.on_request('exit-signal') do |_ch, data|
exit_signal = data.read_long
end
end
end
ssh.loop
[exit_code, stdout_data, stderr_data, exit_signal]
end
|