sub setup {\r
my $c = shift;\r
my( $path, $extension ) = $c->get_config_path;\r
+ my $suffix = $c->get_config_local_suffix;\r
\r
my $finder = Module::Pluggable::Object->new(\r
search_path => [ __PACKAGE__ ],\r
push @files, $path;\r
}\r
else {\r
- @files = map { ( "$path.$_", "${path}_local.$_" ) } @extensions;\r
+ @files = map { ( "$path.$_", "${path}_${suffix}.$_" ) } @extensions;\r
}\r
\r
for( @files ) {\r
\r
=item * C<$ENV{ MYAPP_CONFIG }>\r
\r
-=item * C<$c->config->{ file }>\r
+=item * C<$c-E<gt>config-E<gt>{ file }>\r
\r
-=item * C<$c->path_to( $application_prefix )>\r
+=item * C<$c-E<gt>path_to( $application_prefix )>\r
\r
=back\r
\r
return( $path, $extension );\r
}\r
\r
+=head2 get_config_local_suffix\r
+\r
+Determines the suffix of files used to override the main config. By default\r
+this value is C<local>, but it can be specified in the following order of preference:\r
+\r
+=over 4\r
+\r
+=item * C<$ENV{ CATALYST_CONFIG_LOCAL_SUFFIX }>\r
+\r
+=item * C<$ENV{ MYAPP_CONFIG_LOCAL_SUFFIX }>\r
+\r
+=item * C<$c-E<gt>config-E<gt>{ config_local_suffix }>\r
+\r
+\r
+=back\r
+\r
+=cut\r
+\r
+sub get_config_local_suffix {\r
+ my $c = shift;\r
+ my $appname = ref $c || $c;\r
+ my $suffix = $ENV{ CATALYST_CONFIG_LOCAL_SUFFIX }\r
+ || $ENV{ Catalyst::Utils::class2env( $appname ) . '_CONFIG_LOCAL_SUFFIX' }\r
+ || $c->config->{ config_local_suffix }\r
+ || 'local';\r
+\r
+ return $suffix;\r
+}\r
+\r
sub _fix_syntax {\r
my $config = shift;\r
my @components = (\r