X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FPlugin%2FConfigLoader.pm;h=8fe0e71a8f7f49dcb4cecb6daa59803e493384c5;hb=24e563f5b0bcdd4c8a4385dd03aaf69b09b75836;hp=c1618e3bcfa3b435fe7bfd7041015dfa47a65017;hpb=115eb8efaa04a2ba92bfebf095c04129ec6861dd;p=catagits%2FCatalyst-Plugin-ConfigLoader.git diff --git a/lib/Catalyst/Plugin/ConfigLoader.pm b/lib/Catalyst/Plugin/ConfigLoader.pm index c1618e3..8fe0e71 100644 --- a/lib/Catalyst/Plugin/ConfigLoader.pm +++ b/lib/Catalyst/Plugin/ConfigLoader.pm @@ -280,6 +280,8 @@ default macros: =item * C<__HOME__> - replaced with C<$c-Epath_to('')> +=item * C<__ENV(foo)__> - replaced with the value of C<$ENV{foo}> + =item * C<__path_to(foo/bar)__> - replaced with C<$c-Epath_to('foo/bar')> =item * C<__literal(__FOO__)__> - leaves __FOO__ alone (allows you to use @@ -305,6 +307,17 @@ sub config_substitutions { my $subs = $c->config->{ 'Plugin::ConfigLoader' }->{ substitutions } || {}; $subs->{ HOME } ||= sub { shift->path_to( '' ); }; + $subs->{ ENV } ||= + sub { + my ( $c, $v ) = @_; + if (! defined($ENV{$v})) { + Catalyst::Exception->throw( message => + "Missing environment variable: $v" ); + return ""; + } else { + return $ENV{ $v }; + } + }; $subs->{ path_to } ||= sub { shift->path_to( @_ ); }; $subs->{ literal } ||= sub { return $_[ 1 ]; }; my $subsre = join( '|', keys %$subs ); @@ -329,6 +342,8 @@ development of this module: =item * David Kamholz Edkamholz@cpan.orgE - L integration +=item * Stuart Watt - Addition of ENV macro. + =back Work to this module has been generously sponsored by: