Prev: RDoc and HTML5: 'tt' -> 'code'
Next: RubyInline folder
From: Brian Hartin on 27 May 2010 13:51 Hi all, Something is wrong with my environment such that ruby occasionally gets confused about the 'current directory'. I'm running ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32] on Windows XP. The root problem, which seems to break Rake, as well as gem installs, is that under some situations it thinks the current directory is the Windows USER_HOME, directory even when the script runs from another directory. One way to reproduce this is to create a script that prints the working directory, e.g. 'puts Dir.pwd'. Next, run these commands in IRB from the root dir, c:\ irb(main):001:0> Kernel.system('c:\ruby\bin\ruby.exe c:\temp\printdir.rb') "Current dir: C:/" => true irb(main):001:0> Kernel.system('call c:\ruby\bin\ruby.exe c:\temp\printdir.rb') "Current dir: C:/Documents and Settings/hartbr" => true I have reinstalled ruby, with no luck. It doesn't do this on a co-workers machine. Does anyone have any advice? Thanks, Brian -- Posted via http://www.ruby-forum.com/.
From: Gennady Bystritsky on 27 May 2010 14:06 On May 27, 2010, at 10:51 AM, Brian Hartin wrote: > Hi all, > > Something is wrong with my environment such that ruby occasionally gets > confused about the 'current directory'. I'm running ruby 1.8.6 > (2010-02-04 patchlevel 398) [i386-mingw32] on Windows XP. > > The root problem, which seems to break Rake, as well as gem installs, is > that under some situations it thinks the current directory is the > Windows USER_HOME, directory even when the script runs from another > directory. > > One way to reproduce this is to create a script that prints the working > directory, e.g. 'puts Dir.pwd'. Next, run these commands in IRB from > the root dir, c:\ > > irb(main):001:0> Kernel.system('c:\ruby\bin\ruby.exe > c:\temp\printdir.rb') > "Current dir: C:/" > => true > irb(main):001:0> Kernel.system('call c:\ruby\bin\ruby.exe > c:\temp\printdir.rb') > "Current dir: C:/Documents and Settings/hartbr" > => true It looks like the difference in invocation -- first system() command invokes ruby directly, while the second does it via "call". My guess would be that "call" may reset working folder to the logged user's home folder (or to whatever working folder is associated with the installed ruby application) before invoking ruby.exe. Gennady.
From: Luis Lavena on 27 May 2010 14:12 On May 27, 2:51 pm, Brian Hartin <brian.har...(a)pearson.com> wrote: > Hi all, > > Something is wrong with my environment such that ruby occasionally gets > confused about the 'current directory'. I'm running ruby 1.8.6 > (2010-02-04 patchlevel 398) [i386-mingw32] on Windows XP. > > The root problem, which seems to break Rake, as well as gem installs, is > that under some situations it thinks the current directory is the > Windows USER_HOME, directory even when the script runs from another > directory. > > One way to reproduce this is to create a script that prints the working > directory, e.g. 'puts Dir.pwd'. Next, run these commands in IRB from > the root dir, c:\ > > irb(main):001:0> Kernel.system('c:\ruby\bin\ruby.exe > c:\temp\printdir.rb') > "Current dir: C:/" > => true > irb(main):001:0> Kernel.system('call c:\ruby\bin\ruby.exe > c:\temp\printdir.rb') > "Current dir: C:/Documents and Settings/hartbr" > => true > > I have reinstalled ruby, with no luck. It doesn't do this on a > co-workers machine. Does anyone have any advice? > Your co-workers are using XP too? What is the output of the following? set HOME set USERPROFILE Here, Windows 7: C:\>ruby -v ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32] C:\>irb irb(main):001:0> Dir.pwd => "C:/" irb(main):002:0> system "ruby C:/Users/Luis/Desktop/t.rb" Current directory: C:/ => true irb(main):003:0> system "call ruby C:/Users/Luis/Desktop/t.rb" Current directory: C:/ => true -- Luis Lavena
From: Brian Hartin on 27 May 2010 14:25 Luis Lavena wrote: > Your co-workers are using XP too? > > What is the output of the following? > > set HOME > set USERPROFILE Hi Luis, Thanks for replying. Yes, they are using Windows XP. My values for these are: C:\Documents and Settings\hartbr>set HOME HOMEDRIVE=U: HOMEPATH=\ HOMESHARE=\\icuser\HartBr$ C:\Documents and Settings\hartbr>set USERPROFILE USERPROFILE=C:\Documents and Settings\hartbr I tried setting my HOMEDRIVE to C: and my HOMEPATH to \Documents and Settings\Hartbr, using the 'SET' command, and ran my scripts again in that window, but no luck. -- Posted via http://www.ruby-forum.com/.
From: Brian Hartin on 27 May 2010 16:29
Brian Hartin wrote: > Luis Lavena wrote: >> Your co-workers are using XP too? This is an environment issue, not a Ruby issue. I have narrowed it down to the fact that cmd.exe is failing to inherit the current directory from the spawning process. I'll post back if I find a solution. Thanks. Brian -- Posted via http://www.ruby-forum.com/. |