Como obter o status de saída com a biblioteca Net :: SSH do Ruby?
Eu tenho um trecho de código, simplesmente tentando executar um script em um servidor remoto, caso ele falhe, eu gostaria de fazer uma chamada de acompanhamento, imagine o seguinte:
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
Eu esperaria (ignorando que stdout e stderr são impressos no meu exemplo) - mas a primeira linha deve sair com0
que eu esperaria que Ruby interferissefalse
e exiba "Falha na saída" (claro, para que a lógica esteja errada, o ternário precisa ser invertido) - mas a segunda linha deve sair com o status oposto, e não.
Não consigo encontrar nada na documentação sobre como fazer isso, e estou um pouco preocupado por estar fazendo errado ?!