# Connector::Builtin::Env
#
# Read values from the environment
#
# Written by Oliver Welter for the OpenXPKI project 2014
#
package Connector::Builtin::Env;
use strict;
use warnings;
use English;
use File::Spec;
use Data::Dumper;
use Moose;
extends 'Connector::Builtin';
has prefix => (
is => 'rw',
isa => 'Str',
default => ''
);
sub get {
my $self = shift;
my $key = shift;
my $val = $self->_get_node( $key );
if (!defined $val) {
return $self->_node_not_exists( $key );
}
return $val;
}
sub get_meta {
my $self = shift;
return { TYPE => "scalar" };
}
sub exists {
my $self = shift;
my $val = $self->_get_node( shift );
return defined $val;
}
sub _get_node {
my $self = shift;
my $prefix = $self->prefix();
my $key = shift;
# We expect only a scalar key, so this is a fast and valid conversion
$key = $key->[0] if (ref $key eq 'ARRAY');
return $ENV{$prefix.$key};
}
no Moose;
__PACKAGE__->meta->make_immutable;
1;
__END__
=head 1 Name
Connector::Builtin::Env
=head 1 Description
Return the contents of a environment value.
The value of LOCATION is not used.
=head2 Configuration
Connector::Builtin::Env->new({
'LOCATION' => 'Not Used'
'prefix' => 'optional prefix to be prepended to all keys',
});