[Module-build-checkins] Module-Build/lib/Module/Build Base.pm,1.421,1.422
Status: Beta
Brought to you by:
kwilliams
|
From: Ken W. <kwi...@us...> - 2005-06-09 11:45:44
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14006/lib/Module/Build Modified Files: Base.pm Log Message: Iterate through various places to find a home directory Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.421 retrieving revision 1.422 diff -u -d -r1.421 -r1.422 --- Base.pm 9 Jun 2005 03:30:53 -0000 1.421 +++ Base.pm 9 Jun 2005 11:45:17 -0000 1.422 @@ -1237,14 +1237,26 @@ return %new_opts; } +# Look for a home directory on various systems. CPANPLUS does something like this. +sub _home_dir { + my @os_home_envs = qw( APPDATA HOME USERPROFILE WINDIR SYS$LOGIN ); + + foreach ( @ENV{ @os_home_envs } ) { + return $_ if exists && defined && length && -d; + } + + return; +} + # read ~/.modulebuildrc returning global options '*' and # options specific to the currently executing $action. sub read_modulebuildrc { my( $self, $action ) = @_; - return () unless exists( $ENV{HOME} ) && -e $ENV{HOME}; + my $home = $self->_home_dir; + return () unless defined $home; - my $modulebuildrc = File::Spec->catfile( $ENV{HOME}, '.modulebuildrc' ); + my $modulebuildrc = File::Spec->catfile( $home, '.modulebuildrc' ); return () unless -e $modulebuildrc; my $fh = IO::File->new( $modulebuildrc ) |