[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Rake bug on Windows

S. Robert James

3/22/2007 9:38:00 PM

I can't find out where to file this:

Rake returns 0 exit status on Windows, even after failure.

>rake -V
c:0:Warning: require_gem is obsolete. Use gem instead.
rake, version 0.7.2

>ruby -v
ruby 1.8.5 (2006-08-25) [i386-mswin32]

>true && echo "Success!"
"Success!"

>false && echo "Success!"

>rake notthere && echo "Success!"
c:0:Warning: require_gem is obsolete. Use gem instead.
(in C:/medwiz/delanor/development)
rake aborted!
Don't know how to build task 'notthere'

(See full trace by running task with --trace)
"Success!"

2 Answers

Gavin Kistner

3/22/2007 10:48:00 PM

0

On Mar 22, 3:38 pm, "S. Robert James" <srobertja...@gmail.com> wrote:
> Rake returns 0 exit status on Windows, even after failure.

Not really. It appears that the problem is with the rake.bat batch
file that is used on Windows. Pared down, it looks something like
this:

"%~d0%~p0ruby" -x "%~f0" %*
goto endofruby
#!/bin/ruby

require 'rubygems'
require 'rake'
load 'rake'

__END__
:endofruby

The problem is that the batch file doesn't seem to properly pass along
the exit code in a way that causes Windows to do the right thing if
you perform a goto in the batch file. Here's a simple test case:

C:\>type tmp1.bat
@echo off
ruby -e "puts 'failing...'; exit(1)"

C:\>tmp1.bat && echo "success"
failing...

C:\>type tmp2.bat
@echo off
ruby -e "puts 'failing...'; exit(1)"
goto alldone
:alldone
echo The error level is %ERRORLEVEL%

C:\>tmp2.bat && echo "success"
failing...
The error level is 1
"success"

I hoped maybe I could fix this by really truly having the batch file
return the right error code, but no such luck:
C:\>exit /?
Quits the CMD.EXE program (command interpreter) or the current
batch script.

EXIT [/B] [exitCode]

/B specifies to exit the current batch script instead of
CMD.EXE. If executed from outside a batch script, it
will quit CMD.EXE

exitCode specifies a numeric number. if /B is specified, sets
ERRORLEVEL that number. If quitting CMD.EXE, sets the
process
exit code with that number.

C:\>type tmp3.bat
@echo off
ruby -e "puts 'failing...'; exit(1)"
goto alldone
:alldone
echo The error level is %ERRORLEVEL%
EXIT /B %ERRORLEVEL%

C:\>tmp3.bat && echo "success"
failing...
The error level is 1
"success"

If this is important, you could modify the rake.bat file on Windows
(in c:\ruby\bin) to have it not use the trick ruby -x option, and
instead just use -e instead. Something like:

C:\>type \ruby\bin\rake.bat
@"%~d0%~p0ruby" -e "require 'rubygems'; require 'rake'; load 'rake'"
%*

C:\>rake && echo "success"
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb,
Rakefile.rb)
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.2/lib/rake.rb:1849:in
`load_rakefile'
(See full trace by running task with --trace)

mg

6/30/2013 9:40:00 AM

0

On Sun, 30 Jun 2013 01:49:10 -0700 (PDT), ???'? <gapaddy@gmail.com>
wrote:

>On Sunday, June 30, 2013 4:25:51 AM UTC-4, mg wrote:
>> On Sat, 29 Jun 2013 17:23:31 -0700 (PDT), chatnoir
>>
>> <wolfbat359a@mindspring.com> wrote:
>>
>>
>>
>> >http://wolfbat359.com/...
>>
>>
>>
>> There is too much honesty in this particular post. My guess is that
>>
>> most right wingers will ignore it.
>
>"..After court Thursday ? when race surfaced in testimony ? Daryl Parks, an attorney for Trayvon's parents, stood alongside them in a news conference to say: "To this family, race is not a part of this process. Anybody who tries to inject it is wrong."...
>
>...Parks, one of the attorneys for Trayvon's family, said he was not worried that the jury has five white members and one Hispanic. The case, he has often said, is about justice for Trayvon.
>
>Regarding race, Parks said, "America doesn't want to talk about that."...."
>
>http://www.orlandosentinel.com/news/local/trayvon-martin/os-george-zimmerman-trial-race-20130629,0,3263998.st...
>

The function of an attorney is to act in a client's best interest
and/or perform the duties they have been paid to perform. They are not
necessarily paid to be honest or accurate or to tell the truth.