Hi,
sorry if it’s a know fact - I could not find the info easily. I hope
this
will be useful.
On Windows, system() seems to work partially, is it normal ? The
following
works:
system(“echo hello”)
hello
=> true
the following doesn’t seem to (although svn is in the path):
system(“svn”)
=> falsesystem(“svn.exe”)
=> false
Still on Windows, it seems that IO.popen crashes (I had a quick look at
IoOps.cs to see if it was implemented):
IO.popen(“svn.exe”) do |io| puts io.read end
:0:inpopen': La référence d'objet n'est pas définie à une instance d'un objet. (System::NullReferenceException) from :0:in
popen’
from :0
I ran the same stuff on Mono and got:
IronRuby 1.0.0.0 on Mono 2.4
Copyright © Microsoft Corporation. All rights reserved.
system(“blah”)
IronRuby.Libraries:0:inExecuteProcessAndWait': No such file or directory (Errno::ENOENT) from IronRuby.Libraries:0:in
ExecuteCommandInShell’
from :0:in `system’
system(“svn”)
=> nilsystem(“svn > svninfo.txt”)
=> nilexit
Finally, running IO.popen on Mono gives the same output as Windows:
IronRuby 1.0.0.0 on Mono 2.4
Copyright © Microsoft Corporation. All rights reserved.
IO.popen(“svn.exe”) { |io| puts io.read }
:0:inpopen': Object reference not set to an instance of an object (System::NullReferenceException) from :0:in
popen’
So my question is: what’s the current status on system and IO.popen ? Is
it
supposed to work and is it a regression, or is it not fully implemented
?
I may be able to help at some point here (either by providing patches or
testing on Mono + Windows) if it’s not your top priority
Given that I use Ruby to glue things together quite a lot, that would be
useful to me.
cheers,
– Thibaut