I''m perplexed as to why I can run the following just fine from a
command
line, but when I try to execute from a web  browser it crashes.
From the command line it prints out...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"><HTML><BODY><H3>FlyBOB
Control
Panel</H3><P>cmd=>[echo ''THIS IS A TEST FROM THE REMOTE
SHELL''] got
stdout:
THIS IS A TEST FROM THE REMOTE SHELL
cmd=>[echo ''THIS IS A TEST FROM THE REMOTE SHELL'']
closing!</P></BODY></HTML>
Which means if this text is rendered in a web environment it should
print
THIS IS A TEST FROM THE REMOTE SHELL
Does anyone know why you can''t call net/ssh from a CGI or how to debug
this in a browser environment?
----------------------------- ruby cgi script
---------------------------------
require ''cgi''
require ''rubygems''
require ''net/ssh''
def do_sync_cmd(  session, command )
  session.open_channel do |channel|
  channel.env("PATH", "/usr/pbs/bin:/acct/uzer/test/bin")
  channel.exec("#{command}") do |ch, success|
      abort @myString.concat("could not execute #{command}") unless
success
      channel.on_data do |ch, data|
        @myString.concat("cmd=>[#{command}] got stdout: \n#{data}")
        channel.send_data "something for stdin\n"
      end
      channel.on_extended_data do |ch, type, data|
        @myString.concat("cmd=>[#{command}] stderr: \n#{data}")
      end
      channel.on_close do |ch|
        @myString.concat("cmd=>[#{command}] closing!\n\n")
      end
    end
  end
  session.loop
end
@myString = "XXX"
Net::SSH.start(''myserver.com'', ''uzer'') do
|session|
  do_sync_cmd session, "cd /acct/uzer/test/bin && ls -l"
end
cgi = CGI.new(''html4'')
params = cgi.params
cgi.out {
   cgi.html {
      cgi.head { cgi.title {''Test Control Panel v0.1''}}
      cgi.body {
         cgi.h3 {''Test Control Panel''} +
         cgi.p  {"#{@myString}"}
      }
   }
}
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---