Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > How to tell if script running under rubyw vs ruby?

Reply
Thread Tools

How to tell if script running under rubyw vs ruby?

 
 
Joe Swatosh
Guest
Posts: n/a
 
      05-10-2008
I spent some time poking around in Config, but so far this is the the
only thing I've found that works:

begin
puts 'this is a test'
# here is ruby
rescue
# here is rubyw
end

And I really don't love the side effect when using ruby. Please tell
me there is a better way.

Thanks,
--
Joe Swatosh

 
Reply With Quote
 
 
 
 
Sean O'Halpin
Guest
Posts: n/a
 
      05-10-2008
On Sat, May 10, 2008 at 6:59 PM, Joe Swatosh <(E-Mail Removed)> wrote:
> I spent some time poking around in Config, but so far this is the the
> only thing I've found that works:
>
> begin
> puts 'this is a test'
> # here is ruby
> rescue
> # here is rubyw
> end
>
> And I really don't love the side effect when using ruby. Please tell
> me there is a better way.
>
> Thanks,
> --
> Joe Swatosh
>
>

As you've found out, stdout doesn't work under rubyw because all three
usual streams (stdout, stdin and stderr) are closed in a Windows exe.
I don't have a Window box handy to test, but you could try checking
the value of STDOUT under rubyw - it's probably nil or something like
that or you may get .eof? == true. Only a heuristic, but should serve
to distinguish between your two use cases.

Regards,
Sean

 
Reply With Quote
 
 
 
 
Sebastian Hungerecker
Guest
Posts: n/a
 
      05-11-2008
Sean O'Halpin wrote:
> I don't have a Window box handy to test, but you could try checking
> the value of STDOUT under rubyw - it's probably nil or something like
> that or you may get .eof? == true.


Alternatively you could check for STDOUT.closed? or !STDOUT.tty?
One of those three should work at least.


HTH,
Sebastian
--
Jabber: http://www.velocityreviews.com/forums/(E-Mail Removed)
ICQ: 205544826

 
Reply With Quote
 
Nobuyoshi Nakada
Guest
Posts: n/a
 
      05-11-2008
Hi,

At Sun, 11 May 2008 02:59:07 +0900,
Joe Swatosh wrote in [ruby-talk:301402]:
> I spent some time poking around in Config, but so far this is the the
> only thing I've found that works:


It depends on what you want to know. If it is

a) whether running with or without a console window, you can't
open "CONIN$" and "CONOUT$" without it.

begin
open("CONIN$") {}
# here is ruby
rescue
# here is rubyw
end

b) whether running with opened STDIN/STDOUT/STDERR, STDIN.stat
and so on fail with EBADF if it is not opened.

c) or, whether running executable is linked in GUI mode or CUI
mode, you might have to parse the exe header. (imagehlp.dll
or something may be needed.)

--
Nobu Nakada

 
Reply With Quote
 
Joe Swatosh
Guest
Posts: n/a
 
      05-12-2008
On Sun, May 11, 2008 at 8:06 AM, Nobuyoshi Nakada <(E-Mail Removed)> wrote:
> Hi,
>
> At Sun, 11 May 2008 02:59:07 +0900,
> Joe Swatosh wrote in [ruby-talk:301402]:
> > I spent some time poking around in Config, but so far this is the the
> > only thing I've found that works:

>
> It depends on what you want to know. If it is
>
> a) whether running with or without a console window, you can't
> open "CONIN$" and "CONOUT$" without it.
>
> begin
> open("CONIN$") {}
> # here is ruby
> rescue
> # here is rubyw
> end
>
> b) whether running with opened STDIN/STDOUT/STDERR, STDIN.stat
> and so on fail with EBADF if it is not opened.
>
> c) or, whether running executable is linked in GUI mode or CUI
> mode, you might have to parse the exe header. (imagehlp.dll
> or something may be needed.)
>
> --
> Nobu Nakada
>
>


Thanks Sean.
I should have mentioned that testing for defined?, nil?, and eof?
weren't helpful.

Thanks Sebastian.
No joy on .tty? or .closed? either.

Nobu rocks again!
It is b) We are using some gems that might puts or warn when they are
loaded, so when running under rubyw we are planning to redirect them
to a log file, but we don't want to mess with anything when running
under ruby.

Thanks again everyone.

--
Joe

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
rubyw.exe not working Dirk Meijer Ruby 4 09-12-2005 05:25 AM
Visual C++ Run-time error with rubyw.exe Matt Mower Ruby 6 02-25-2005 06:23 PM
Detecting rubyw Nathaniel Talbott Ruby 6 11-17-2004 03:47 PM
Script to Tell Tell Time then Limit by it? Mike A Javascript 17 11-19-2003 02:16 PM



Advertisments