File: Class.pm

package info (click to toggle)
libmoosex-app-perl 1.42-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 736 kB
  • sloc: perl: 4,004; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 981 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# ============================================================================
package MooseX::App::Plugin::ConfigHome::Meta::Class;
# ============================================================================

use 5.010;
use utf8;

use namespace::autoclean;
use Moose::Role;

use File::HomeDir qw();
use File::Spec qw();

around 'proto_config' => sub {
    my $orig = shift;
    my ($self,$command_class,$result,$errors) = @_;

    unless (defined $result->{config}) {
        my $data_dir = File::Spec->catfile(
            File::HomeDir->my_home,
            '.'.$self->app_base
        );
        foreach my $extension (Config::Any->extensions) {
            my $check_file = File::Spec->catfile(
                $data_dir,
                'config.'.$extension
            );
            if (-e $check_file) {
                $result->{config} = $check_file;
                last;
            }
        }
    }

    return $self->$orig($command_class,$result,$errors);
};
1;