[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

rake broken on windows?

msoulier

10/16/2006 7:38:00 PM

I installed ruby for windows with rubygems support. Rake comes
installed already as a gem.

I took an existing project and tried a "rake test".

C:\Documents and Settings\user\My Documents\work\tftpplus>rake test
(in C:/Documents and Settings/user/My Documents/work/tftpplus)
c:/ruby/bin/ruby: No such file or directory -- and (LoadError)
rake aborted!
Command failed with status (1): [c:/ruby/bin/ruby -w -IC:/Documents and
Set...]

(See full trace by running task with --trace)

c:\ruby\bin\ruby.exe exists.

C:\Documents and Settings\user\My Documents\work\tftpplus>rake test
--trace
(in C:/Documents and Settings/user/My Documents/work/tftpplus)
** Invoke test (first_time)
** Execute test
c:/ruby/bin/ruby: No such file or directory -- and (LoadError)
rake aborted!
Command failed with status (1): [c:/ruby/bin/ruby -w -IC:/Documents and
Set...]
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:722:in `sh'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:729:in `call'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:729:in `sh'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:812:in `sh'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:747:in `ruby'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:812:in `ruby'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/testtask.rb:117:in
`define'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:831:in `verbose'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/testtask.rb:102:in
`define'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:387:in `call'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:387:in `execute'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:387:in `each'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:387:in `execute'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:357:in `invoke'
c:/ruby/lib/ruby/1.8/thread.rb:135:in `synchronize'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:350:in `invoke'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:1906:in `run'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:1906:in `each'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:1906:in `run'
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/bin/rake:7
c:/ruby/bin/rake.bat:25:in `load'
c:/ruby/bin/rake.bat:25

rake is a batch file, that looks like this.

@echo off
if not "%~f0" == "~f0" goto WinNT
ruby -Sx "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofruby
:WinNT
"%~d0%~p0ruby" -x "%~f0" %*
goto endofruby
#!/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rake' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'
version = "> 0"
if ARGV.size > 0 && ARGV[0][0]==95 && ARGV[0][-1]==95
if Gem::Version.correct?(ARGV[0][1..-2])
version = ARGV[0][1..-2]
ARGV.shift
end
end
require_gem 'rake', version
load 'rake'

__END__
:endofruby

I'm not sure what's happening here, but rake is apparently not working.


Any ideas?

Mike

4 Answers

Jano Svitok

10/16/2006 7:57:00 PM

0

On 10/16/06, msoulier <msoulier@gmail.com> wrote:
> Command failed with status (1): [c:/ruby/bin/ruby -w -IC:/Documents and
> Set...]

Spaces in pathnames. #1 reason to not install ruby into Program Files.
Only way around this issue is to enclose the pathname in quotes as in

c:/ruby/bin/ruby -w -I"C:/Documents and Set..."

Problem is that you'll need to quote the path in so many places deep
in ruby... So far nobody dared to fix that. On unix, you can escape
the spaces with a backslash, on windows, I don't know of any such
possibility (see help for cmd.exe if you want).

Another way is to avoid such paths (possibly using subst).

Daniel Berger

10/16/2006 10:19:00 PM

0


Jan Svitok wrote:
> On 10/16/06, msoulier <msoulier@gmail.com> wrote:
> > Command failed with status (1): [c:/ruby/bin/ruby -w -IC:/Documents and
> > Set...]
>
> Spaces in pathnames. #1 reason to not install ruby into Program Files.
> Only way around this issue is to enclose the pathname in quotes as in
>
> c:/ruby/bin/ruby -w -I"C:/Documents and Set..."
>
> Problem is that you'll need to quote the path in so many places deep
> in ruby... So far nobody dared to fix that. On unix, you can escape
> the spaces with a backslash, on windows, I don't know of any such
> possibility (see help for cmd.exe if you want).
>
> Another way is to avoid such paths (possibly using subst).

Maybe I should talk to Jim about this. One solution might be to use
File.short_path (in the win32-file package):

irb(main):001:0> require 'win32/file'
irb(main):002:0> File.short_path("C:\\Documents and Settings")
=> "DOCUME~1"

The win32-file package now comes standard with Curt's one-click
installer. There's also a gem for win32-file, so it could be added as
a dependency for Rake on Windows if needed.

Regards,

Dan

msoulier

10/16/2006 10:56:00 PM

0


Jan Svitok wrote:
> Spaces in pathnames. #1 reason to not install ruby into Program Files.

Ah. It's not installed there, but my working directory is "My
Documents". I've moved my sandbox to c:\work, and that works fine.

I think that this should be fixed to the best of our ability, for
cross-platform development. I don't normally work on windows, but in
some cases I must, and when I must, I'd like to use Ruby as my OS
abstraction layer. ;-)

Mike

Nobuyoshi Nakada

10/16/2006 10:59:00 PM

0

Hi,

At Tue, 17 Oct 2006 07:20:22 +0900,
Daniel Berger wrote in [ruby-talk:220104]:
> Maybe I should talk to Jim about this. One solution might be to use
> File.short_path (in the win32-file package):
>
> irb(main):001:0> require 'win32/file'
> irb(main):002:0> File.short_path("C:\\Documents and Settings")
> => "DOCUME~1"

Oops, how ugly.

And it can occur on other platforms. Is there any reason that
rake can't use system(*args) rather than system(args.join(" "))?

--
Nobu Nakada