# ============================================================================
package MooseX::App::Plugin::Env::Meta::Class;
# ============================================================================
use 5.010;
use utf8;
use namespace::autoclean;
use Moose::Role;
around 'command_proto' => sub {
my ($orig,$self,$command_meta,$processed_argv) = @_;
my ($result,$errors) = $self->$orig($command_meta,$processed_argv);
foreach my $attribute ($self->command_usage_attributes($command_meta)) {
next
unless $attribute->can('has_cmd_env')
&& $attribute->has_cmd_env;
my $cmd_env = $attribute->cmd_env;
if (exists $ENV{$cmd_env}
&& ! defined $result->{$attribute->name}) {
$result->{$attribute->name} = $ENV{$cmd_env};
my $error = $self->command_check_attribute($attribute,$ENV{$cmd_env});
push(@{$errors},$error)
if $error;
}
}
return ($result,$errors);
};
1;