Jim,

That's much cleaner - I fixed a minor typo in the example you sent and tested 
on my machine. Seems to work fine. Any idea when we'll see a new gem with the 
fix in it?

def perform_variable_expansion(cmd)
   cmd.gsub!(/%([A-Za-z_]+)%/) { |k| ENV[$1] || k }
end

Thanks for the help!

Regards,
Jay Turpin
"May the road rise up to meet you. May the wind be always at your back. The 
rain falls soft upon your fields. And until we meet again, may God hold you in 
the palm of His hand." - Irish blessing
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jim Weirich
Sent: Friday, September 26, 2008 5:44 PM
To: Rake Development and Discussion
Subject: Re: [Rake-devel] Rake::Win32.rake_system


On Sep 26, 2008, at 12:18 PM, Turpin, Jay wrote:

> OK - now I understand why this was done. However, the CALL command
> is choking on any commands sent to sh that contains a newline
> character. It's not pretty, but this fix appears to resolve the
> problem (at least all of the tests pass):
>
> # Run a command line on windows.
> def rake_system(*cmd)
>  perform_variable_expansion cmd[0]
>  system(*cmd)
> end
>
> def perform_variable_expansion(cmd)
>  ENV.each do |k, v|
>    cmd.sub!(/\%#{k}\%/i, v)
>  end
> end

Perform the variable expansion by hand?  Ok by me.

I'm thinking I like this for the expansion:

def perform_variable_expansion(cmd)
   s.gsub!(/%([A-Za-z_]+)%/) { |k| ENV[$1] || k }
end


--
-- Jim Weirich
-- [EMAIL PROTECTED]

_______________________________________________
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

Reply via email to