diff options
author | Julian Blake Kongslie <jblake@omgwallhack.org> | 2010-03-17 22:47:35 -0700 |
---|---|---|
committer | Julian Blake Kongslie <jblake@omgwallhack.org> | 2010-03-17 22:47:35 -0700 |
commit | 654a7353e1c46878dd84bfef0e987f0205e03fde (patch) | |
tree | 1d50d4ae0fad99f874fc85673907c9beb8d133fb /usr/src/libpiny/Piny/Environment.pm | |
parent | 225cfa610fc07cb143f5a86c06f87829f9e240d2 (diff) | |
download | piny-code-654a7353e1c46878dd84bfef0e987f0205e03fde.tar.gz piny-code-654a7353e1c46878dd84bfef0e987f0205e03fde.zip |
Initial version of the libpiny stuff.
Diffstat (limited to 'usr/src/libpiny/Piny/Environment.pm')
-rw-r--r-- | usr/src/libpiny/Piny/Environment.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/usr/src/libpiny/Piny/Environment.pm b/usr/src/libpiny/Piny/Environment.pm new file mode 100644 index 0000000..30df62c --- /dev/null +++ b/usr/src/libpiny/Piny/Environment.pm @@ -0,0 +1,38 @@ +package Piny::Environment; + +use Moose; + +use Piny::User; + +# Attributes + +has 'user' => + ( is => 'ro' + , isa => 'Piny::User' + , lazy_build => 1 + , init_arg => undef + ); + +# Builder methods + +sub _build_user { + my ( $s ) = @_; + + if ( defined $ENV{"SUDO_UID"} ) { + return Piny::User->new( uid => $ENV{"SUDO_UID"} ); + } elsif ( defined $ENV{"SUDO_USER"} ) { + return Piny::User->new( username => $ENV{"SUDO_USER"} ); + } elsif ( defined $ENV{"UID"} ) { + return Piny::User->new( uid => $ENV{"UID"} ); + } elsif ( defined $ENV{"USER"} ) { + return Piny::User->new( username => $ENV{"USERNAME"} ); + } else { + return Piny::User->new( uid => $< ); + }; +}; + +# Moose boilerplate + +__PACKAGE__->meta->make_immutable; + +1; |