[Solved]RE: IO.popen puts
- From: "Rebhan, Gilbert" <Gilbert.Rebhan@xxxxxxxxxxxxx>
- Date: Mon, 5 Mar 2007 23:08:11 +0900
Hi,
-----Original Message-----
From: Jan Svitok [mailto:jan.svitok@xxxxxxxxx]
Sent: Monday, March 05, 2007 12:48 PM
To: ruby-talk ML
Subject: Re: IO.popen puts
On 3/5/07, Rebhan, Gilbert <Gilbert.Rebhan@xxxxxxxxxxxxx> wrote:
Hi,
i want to do a cvs login for a list of cvsrepositories
with IO.popen
the normal login via Windows shell looks like =
Y:\>cvs -d :pserver:username@cvshost:d:/cvsrepos/test login
Logging in to :pserver:username@cvshost:2401:d:/cvsrepos/test
CVS password: ********
i tried with =
cvsrepos=%w[test,test1,test2]
cvsrepos.each {|x|
IO.popen("#{CVSEXE} -d #{CVSROOT}/#{x} login", 'r+') do |pipe|
pipe << "password"
pipe.close_write
puts pipe.read
end
}
but the script hangs with the output
CVS password:
What went wrong ?
/*
just a guess:
1. try adding newline
2. try redirecting stdin on the command line without ruby (maybe cvs
reads the keyboard directly)
*/
Found a working solution that is much simpler =
cvsrepos=%w[...]
cvspass=gets.chomp
cvsrepos.each {|x|
puts "Login CVS Repository >> #{x} ..."
IO.popen("#{CVSEXE} -d
:pserver:#{ENV["USERNAME"]}:#{cvspass}@cvshost:d:/cvsrepos/#{x} login")
}
the CVSROOT string takes a password too
Regards, Gilbert
.
- References:
- IO.popen puts
- From: Rebhan, Gilbert
- Re: IO.popen puts
- From: Jan Svitok
- IO.popen puts
- Prev by Date: Re: mask gets_chomp ?
- Next by Date: Re: a regular expression problem
- Previous by thread: Re: IO.popen puts
- Next by thread: postgresql driver
- Index(es):
Relevant Pages
|
|