Net-RabbitFoot/lib/Net/RabbitFoot/Cmd/Role/Config.pm
package Net::RabbitFoot::Cmd::Role::Config;
use FindBin;
use Config::Any;
use Moose::Role;
with qw(MooseX::ConfigFromFile);
has configfile => (
isa => 'Str',
is => 'rw',
default => $FindBin::Bin . '/config.json',
metaclass => 'MooseX::Getopt::Meta::Attribute',
cmd_aliases => 'c',
documentation => 'config file',
);
no Moose::Role;
sub get_config_from_file {
my ($self, $file,) = @_;
return {} if !$file || !-f $file;
my $config = Config::Any->load_files({
files => [$file],
use_ext => 1,
driver_args => {General => {-LowerCaseNames => 1}}
});
return $config->[0]->{$file} or die "Could not load $file";
}
1;