File Coverage

blib/lib/OS/Package/Config.pm
Criterion Covered Total %
statement 13 15 86.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 18 20 90.0


line stmt bran cond sub pod time code
1 2     2   14871 use v5.14.0;
  2         6  
  2         57  
2 2     2   6 use warnings;
  2         2  
  2         84  
3              
4             package OS::Package::Config;
5              
6             # ABSTRACT: Load OS::Package configuration object.
7             our $VERSION = '0.2.5'; # VERSION
8              
9 2     2   9 use base qw(Exporter);
  2         4  
  2         167  
10 2     2   926 use Env qw( $HOME );
  2         2011  
  2         8  
11 2     2   1226 use File::ShareDir qw(dist_file);
  0            
  0            
12             use Hash::AsObject;
13             use Path::Tiny;
14             use YAML::Any qw( LoadFile );
15              
16             our @EXPORT = qw( $OSPKG_CONFIG );
17              
18             local $YAML::UseCode = 0 if !defined $YAML::UseCode;
19             local $YAML::LoadCode = 0 if !defined $YAML::LoadCode;
20              
21             our $OSPKG_CONFIG = Hash::AsObject->new(
22             LoadFile( dist_file( 'OS-Package', 'config.yml' ) ) );
23              
24             if ( path( $OSPKG_CONFIG->user_config )->exists ) {
25              
26             my $user_config = LoadFile( path( $OSPKG_CONFIG->user_config ) );
27              
28             if ( defined $user_config->{config_dir} ) {
29             $OSPKG_CONFIG->dir->configs($user_config->{config_dir});
30             }
31              
32             if ( defined $user_config->{pkg_dir} ) {
33             $OSPKG_CONFIG->dir->packages($user_config->{pkg_dir});
34             }
35              
36             }
37              
38             1;
39              
40             __END__