mirror of
https://github.com/webmin/webmin.git
synced 2025-07-20 16:48:46 +00:00
31 lines
743 B
Perl
Executable File
31 lines
743 B
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Only runs the specified cron job if within the date range
|
|
# XXX support in usermin
|
|
|
|
use Time::Local;
|
|
|
|
# Parse args
|
|
($start, $end, @cmd) = @ARGV;
|
|
$start && $end && scalar(@cmd) || die "usage: range.pl dd-mm-yyyy dd-mm-yyyy command ...";
|
|
$stime = &parse_date($start);
|
|
$stime || die "Invalid start date $start";
|
|
$etime = &parse_date($end);
|
|
$etime || die "Invalid ending date $end";
|
|
|
|
# Check time range (inclusive)
|
|
$now = time();
|
|
if ($now < $stime || $now >= $etime+24*60*60) {
|
|
exit(0);
|
|
}
|
|
|
|
# Run the rest
|
|
exec("/bin/sh", "-c", join(" ", @cmd));
|
|
|
|
sub parse_date
|
|
{
|
|
($d, $m, $y) = split(/\-/, $_[0]);
|
|
$y =~ /^\d+$/ && $m =~ /^\d+$/ && $d =~ /^\d+$/ || return undef;
|
|
return eval { timelocal(0, 0, 0, $d, $m-1, $y-1900) };
|
|
}
|
|
|