package Catmandu::CLI;
use Catmandu::Sane;
use App::Cmd::Setup -app;
use Catmandu;
sub plugin_search_path { 'Catmandu::Cmd' }
sub global_opt_spec {
(
['load_path|L=s@', ""],
);
}
# overload run to read the global options before
# the App::Cmd object is created
sub run {
my ($class) = @_;
my ($global_opts, $argv) = $class->_process_args([@ARGV], $class->_global_option_processing_params);
my $load_path = $global_opts->{load_path};
Catmandu->load(@$load_path);
my $self = $class->new;
$self->set_global_options($global_opts);
my ($cmd, $opts, @args) = $self->prepare_command(@$argv);
$self->execute_command($cmd, $opts, @args);
}
1;