Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- my ($run, $timer);
- $timer = 0.5 * 60;
- $run = 'an other program';
- sub d2($) { return ($_[0] < 10) ? '0'.$_[0] : $_[0]; }
- sub getDate(;$) {
- my $time = $_[0] || time;
- my @date = localtime($time);
- $date[5] += 1900;
- $date[4] += 1;
- map {$_ = '0'.$_ if ($_ < 10)} @date;
- return ($date[5],$date[4],$date[3],$date[2],$date[1],$date[0]);
- }
- my ($timerDay,$timerHour,$timerMin);
- if (defined($ARGV[0]) && $ARGV[0] =~ /^(\d\d?)[:\.-]?(\d\d?)$/) {
- ($timerHour,$timerMin) = (d2($1),d2($2));
- }
- elsif (defined($ARGV[0]) && $ARGV[0] =~ /^(\d\d?)[:,\.-]?(\d\d?)[:\.-]?(\d\d?)$/) {
- ($timerDay, $timerHour,$timerMin) = (d2($1),d2($2),d2($3));
- }
- else {
- $timerDay = (getDate(time + 86400))[2];
- ($timerHour,$timerMin) = (0,15);
- }
- while (1) {
- my ($year, $month, $day, $hour, $min, $sec) = getDate();
- if (
- (!defined($timerDay) || $timerDay == $day) &&
- ($min + 60 * $hour) >= ($timerMin + 60 * $timerHour)) {
- print "run\n";
- `$run`;
- last;
- }
- sleep($timer);
- }
Advertisement
Add Comment
Please, Sign In to add comment