From: Brian Hartin on
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

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
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
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
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/.

 |  Next  |  Last
Pages: 1 2
Prev: RDoc and HTML5: 'tt' -> 'code'
Next: RubyInline folder