Getting the user's home directory path

I’ve got a program that needs to access a file in the ~/etc/ directory.
This program currently accesses it like so:

file_path = File.expand_path("~#{ENV[‘USER’]}/etc/#{filename}")

. . . but that environment variable just looks hideous in there, at
least
to me. In Perl, I’m used to using getpwuid() instead of $_ENV[‘user’].
Is there some equivalent to that in Ruby, or am I stuck with
ENV[‘USER’]?

On Thu, 2008-03-20 at 16:05 +0900, Chad P. wrote:

I’ve got a program that needs to access a file in the ~/etc/ directory.
This program currently accesses it like so:

file_path = File.expand_path("~#{ENV[‘USER’]}/etc/#{filename}")

. . . but that environment variable just looks hideous in there, at least
to me. In Perl, I’m used to using getpwuid() instead of $_ENV[‘user’].
Is there some equivalent to that in Ruby, or am I stuck with ENV[‘USER’]?

require ‘etc’
Etc.getpwuid.dir

works for me…

On Thu, Mar 20, 2008 at 05:27:03PM +0900, Alex Y. wrote:

require ‘etc’
Etc.getpwuid.dir

works for me…

Hallelujah. That’s exactly what I wanted. Thank you much.

I don’t know why this wasn’t working:

> ri getpwuid
Nothing known about getpwuid

Hi,

At Thu, 20 Mar 2008 16:05:12 +0900,
Chad P. wrote in [ruby-talk:295141]:

I’ve got a program that needs to access a file in the ~/etc/ directory.
This program currently accesses it like so:

file_path = File.expand_path("~#{ENV[‘USER’]}/etc/#{filename}")

File.expand_path("~/etc/#{filename}")

On Fri, 2008-03-21 at 01:50 +0900, Chad P. wrote:

Is there some equivalent to that in Ruby, or am I stuck with ENV[‘USER’]?

> ri getpwuid
Nothing known about getpwuid

I get:

qri getpwuid
nil

Same problem. Documentation seems to be rather hit-and-miss all round
these days, but I haven’t got any time to contribute to help. I was
lucky with this - I managed to trawl it out of the depths of my memory
from a few months ago, when I needed something else in Etc.

On Fri, Mar 21, 2008 at 06:16:02AM +0900, Nobuyoshi N. wrote:

Hi,

At Thu, 20 Mar 2008 16:05:12 +0900,
Chad P. wrote in [ruby-talk:295141]:

I’ve got a program that needs to access a file in the ~/etc/ directory.
This program currently accesses it like so:

file_path = File.expand_path("~#{ENV[‘USER’]}/etc/#{filename}")

File.expand_path("~/etc/#{filename}")

Amazing – and confusing. I could swear I actually tried that and it
didn’t work out for me. I guess I must have dreamed that.