On Sun, Nov 2, 2008 at 5:29 PM, James M. Lawrence < [EMAIL PROTECTED]> wrote:
> On Sun, Nov 2, 2008 at 6:27 PM, Luis Lavena <[EMAIL PROTECTED]> wrote: > > > > Yes Lawrence, I remember our talk and that's why I published a follow > > up to this message: > > > > http://rubyforge.org/pipermail/rake-devel/2008-November/000620.html > > Sorry, I didn't see that separate thread. > > > So this approach will define RUBY (around line 900 in lib/rake.rb) > > depending on the platforms, and append the full extension. That is > > correct? > > > > RUBY = File.join(Config::CONFIG['bindir'], > > Config::CONFIG['ruby_install_name']) > > RUBY << Config::CONFIG['EXEEXT'] unless RUBY_PLATFORM =~ /java/ > > RUBY.sub!(/.*\s.*/m, '"\&"') > > > > Thoughts? > > The last line looks like a bug; git blame says it was introduced on > 9/21. An executable containing quotes cannot be run with > muti-argument system(). On all platforms (not just Windows), ruby() > with multiple arguments will fail when there is whitespace in the > bindir path. > > For jruby, Rake cannot use multi-argument system() for ruby(). I > think our hand is forced on this one. All arguments will have to be > escaped and passed to single-argument system(). RUBY should not > contain the bindir path, and the constant should probably be removed > anyway. > > For non-jruby, your EXEEXT workaround seems doable, however I would > make sure the EXEEXT is not present before appending it. There's a > remote possibility that some future CONFIG["ruby_install_name"] will > contain the EXEEXT. What about using PATH to search for the executable? if windows? path = ENV['PATH'].split(File::PATH_SEPARATOR).map { |path| path.gsub('\\', '/') }.map { |path| "#{path}/#{name}.{exe,bat,com}" } else path = ENV['PATH'].split(File::PATH_SEPARATOR).map { |path| "#{path}/#{name}" } end FileList[path].existing.first Assaf > > _______________________________________________ > Rake-devel mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/rake-devel >
_______________________________________________ Rake-devel mailing list [email protected] http://rubyforge.org/mailman/listinfo/rake-devel
