App-Nag
view release on metacpan or search on metacpan
lib/App/Nag.pm view on Meta::CPAN
package App::Nag;
BEGIN {
$App::Nag::VERSION = '0.002';
}
# ABSTRACT: send yourself a reminder
use Modern::Perl;
use Getopt::Long::Descriptive qw(describe_options prog_name);
# some icon specs
use constant PHRASE => [qw(psst hey HEY !!!)];
use constant STROKE => [qw(0000ff 0000ff ff0000 ff0000)];
use constant FILL => [qw(ffffff ffffff ffffff ffff00)];
use constant OPACITY => [ 0, 1, 1, 1 ];
use constant FONT_SIZE => [ 20, 25, 28, 32 ];
use constant XY => [ [ 8, 40 ], [ 9, 40 ], [ 7, 41 ], [ 3, 43 ] ];
sub validate_args {
my $name = prog_name;
my ( $opt, $usage ) = describe_options(
"$name %o <time> <text>+",
[],
['Send yourself a reminder.'],
[],
[
'urgency' => hidden => {
one_of => [
[ 'nudge|n', 'low key reminder' ],
[
'poke|p',
'reminder with no particular urgency (default)'
],
[ 'shake|s', 'urgent reminder' ],
[ 'slap', 'do this!!!' ],
]
}
],
[],
[ 'help', "print usage message and exit" ],
);
print( $usage->text ), exit if $opt->help;
given ( scalar @ARGV ) {
when (0) {
$usage->die(
{
pre_text => "ERROR: No time or message.\n\n"
}
)
}
when (1) {
$usage->die(
{
pre_text => "ERROR: No message.\n\n"
}
)
}
}
return ( $opt, $usage, $name );
}
sub validate_time {
my ( undef, $opt, $usage, $time, @args ) = @_;
require DateTime;
require DateTime::TimeZone;
( run in 0.613 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )