#!/usr/bin/perl
package Mail::Summary::Tools::CLI::Command;
use base qw/App::Cmd::Command/;
use strict;
use warnings;
sub opt_spec {
my ( $self, $app ) = @_;
my @options = $self->options;
foreach my $option ( @options ) {
my $opts = $option->[2] ||= {};
my ($name) = ($option->[0] =~ /^(\w+)/);
if ( defined( my $default = $self->option_config( $app, $name ) ) ) {
$opts->{default} = $default; # clobber the default one with the user's value
}
}
unshift @options, $self->extra_options;
return @options;
}
sub validate_args {
my ( $self, $opt, $args ) = @_;
print $self->_usage_text and exit if $opt->{help};
$self->validate( $opt, $args );
}
sub extra_options {
my ( $self, $app ) = @_;
[ help => 'This help screen' ];
}
sub option_config {
my ( $self, $app, $option ) = @_;
my ( $cmd ) = $self->command_names;
( $app->config || $app->app->config )->option_value( $cmd => $option );
}
sub diag {
my ( $self, @message ) = @_;
return unless $self->app->global_options->{verbose};
my $message = "@message";
chomp $message;
warn "$message\n";
}
__PACKAGE__;
__END__
=pod
=head1 NAME
Mail::Summary::Tools::CLI::Command -
=head1 SYNOPSIS
use Mail::Summary::Tools::CLI::Command;
=head1 DESCRIPTION
=cut