¿Cómo obtener el estado de salida con la biblioteca Ruby's Net :: SSH?
Tengo un fragmento de código, simplemente tratando de ejecutar un script en un servidor remoto, en caso de que falle, me gustaría hacer una llamada de seguimiento, imagine esto:
require 'rubygems'
require 'net/ssh'
require 'etc'
server = 'localhost'
Net::SSH.start(server, Etc.getlogin) do |ssh|
puts (ssh.exec("true") ? 'Exit Success' : "Exit Failure")
puts (ssh.exec("false") ? 'Exit Success' : "Exit Failure")
end
Esperaría (ignorando que stdout y stderr se imprimen en mi ejemplo artificial), pero la primera línea debería salir con0
que esperaría que Ruby interpelara comofalse
y muestra "Exit Failure" (claro, por lo que la lógica es incorrecta, el ternario debe invertirse), pero la segunda línea debe salir con el estado opuesto, y no lo hace.
¡Ni siquiera puedo encontrar nada en la documentación sobre cómo hacer esto, y estoy un poco preocupado de que pueda estar haciéndolo mal!