Change soft-fail to use the config, rather than env
[rbx.git] / stdlib / ext / pty / expect_sample.rb
blobbf8a2352fee48f01354222453926c9e342162b35
2 # sample program of expect.rb
4 #  by A. Ito
6 #  This program reports the latest version of ruby interpreter
7 #  by connecting to ftp server at ruby-lang.org.
9 require 'pty'
10 require 'expect'
12 fnames = []
13 PTY.spawn("ftp ftp.ruby-lang.org") do |r_f,w_f,pid|
14   w_f.sync = true
15   
16   $expect_verbose = false
17   
18   r_f.expect(/^Name.*: /) do
19     w_f.print "ftp\n"
20   end
21   
22   if !ENV['USER'].nil?
23     username = ENV['USER']
24   elsif !ENV['LOGNAME'].nil?
25     username = ENV['LOGNAME']
26   else
27     username = 'guest'
28   end
29   
30   r_f.expect('word:') do
31     w_f.print username+"@\n"
32   end
33   r_f.expect("> ") do
34     w_f.print "cd pub/ruby\n"
35   end
36   r_f.expect("> ") do
37     w_f.print "dir\n"
38   end
39   
40   r_f.expect("> ") do |output|
41     for x in output[0].split("\n")
42       if x =~ /(ruby.*\.tar\.gz)/ then
43          fnames.push $1
44       end
45     end
46   end
47   begin
48     w_f.print "quit\n"
49   rescue
50   end
51 end
53 print "The latest ruby interpreter is "
54 print fnames.sort.pop
55 print "\n"