Blame


1 1ddd2d4e 2023-09-10 jrmu #!perl
2 1ddd2d4e 2023-09-10 jrmu
3 1ddd2d4e 2023-09-10 jrmu use strict;
4 1ddd2d4e 2023-09-10 jrmu use warnings;
5 1ddd2d4e 2023-09-10 jrmu use utf8;
6 1ddd2d4e 2023-09-10 jrmu
7 1ddd2d4e 2023-09-10 jrmu use File::Find;
8 1ddd2d4e 2023-09-10 jrmu use Time::Local;
9 1ddd2d4e 2023-09-10 jrmu
10 1ddd2d4e 2023-09-10 jrmu my $target_dow = 1; # Sunday is 0, Monday is 1, ...
11 1ddd2d4e 2023-09-10 jrmu my @starting_directories = (".");
12 1ddd2d4e 2023-09-10 jrmu
13 1ddd2d4e 2023-09-10 jrmu my $seconds_per_day = 24 * 60 * 60;
14 1ddd2d4e 2023-09-10 jrmu my($sec, $min, $hour, $day, $mon, $yr, $dow) = localtime;
15 1ddd2d4e 2023-09-10 jrmu my $start = timelocal(0, 0, 0, $day, $mon, $yr); # midnight today
16 1ddd2d4e 2023-09-10 jrmu
17 1ddd2d4e 2023-09-10 jrmu while ($dow != $target_dow) {
18 1ddd2d4e 2023-09-10 jrmu # Back up one day
19 1ddd2d4e 2023-09-10 jrmu $start -= $seconds_per_day; # hope no DST! :-)
20 1ddd2d4e 2023-09-10 jrmu if (--$dow < 0) {
21 1ddd2d4e 2023-09-10 jrmu $dow += 7;
22 1ddd2d4e 2023-09-10 jrmu }
23 1ddd2d4e 2023-09-10 jrmu }
24 1ddd2d4e 2023-09-10 jrmu my $stop = $start + $seconds_per_day;
25 1ddd2d4e 2023-09-10 jrmu
26 1ddd2d4e 2023-09-10 jrmu my($gather, $yield) = gather_mtime_between($start, $stop);
27 1ddd2d4e 2023-09-10 jrmu find($gather, @starting_directories);
28 1ddd2d4e 2023-09-10 jrmu my @files = $yield->( );
29 1ddd2d4e 2023-09-10 jrmu
30 1ddd2d4e 2023-09-10 jrmu for my $file (@files) {
31 1ddd2d4e 2023-09-10 jrmu my $mtime = (stat $file)[9]; # mtime via slice
32 1ddd2d4e 2023-09-10 jrmu my $when = localtime $mtime;
33 1ddd2d4e 2023-09-10 jrmu print "$when: $file\n";
34 1ddd2d4e 2023-09-10 jrmu }