rendered paste body#! /usr/bin/perl
use Modern::Perl;
use Time::ParseDate;
my $DEBUG;
#$DEBUG++;
sub debug { say @_ if $DEBUG };
my ($time, @command) = @ARGV;
debug "$time\t@command";
my $futuretime = parsedate($time, TIMEFIRST => 1,
PREFER_FUTURE => 1);
debug "future time is\n\t$futuretime\ntime is ", time;
my $seconds_until = abs($futuretime - time());
debug "$seconds_until until"; #DEBUG
countdown($seconds_until);
sub readable
{
my ($seconds_pristine) = @_;
my $seconds = $seconds_pristine % 60;
my $minutes_pristine = $seconds_pristine/60;
my $minutes = $minutes_pristine % 60;
my $hours = int($minutes_pristine / 60);
my $value = "$hours hour(s), $minutes minute(s), $seconds second(s)";
return $value;
}
sub countdown
{
$|++;
for my $i (reverse 0 .. $seconds_until)
{
my $readable = readable($i);
print "\r$readable remaining.";
sleep 1;
}
}
#sleep($seconds_until);