|
|
- #!/usr/bin/env perl
-
- use strict;
- use warnings;
-
- use 5.10.0;
- use POSIX qw(strftime);
- use File::Basename;
-
- my $root = $ENV{HOME} . '/p1k3/archives';
- my @t = localtime;
-
- # strftime doesn't have a non-zero-padded month/day?
- my $dayfile = strftime("%Y/%m/%e", @t);
- $dayfile =~ s{/[0 ]}{/}gx;
-
- # (Or: Use it anyway and apply an ad-hoc regex fix, because though we often
- # feel we know better in this day and age, we are not ashamed of text
- # transformation. not when the chips are down. text is the most powerful
- # computational abstraction i've ever come close to understanding, if i'm
- # honest, and past a certain point life is too short and too precious a span to
- # abandon the only tools you have ready to hand.)
-
- my $today = "$root/$dayfile";
-
- if (-d $today) {
- print $today;
- } else {
- my $dirname = $today;
-
- until (-d ($dirname)) {
- # If a dir for the month or year doesn't exist, this moves one step up.
- # Should land in archives/ if no year.
- $dirname = dirname($dirname);
- }
- print $dirname;
- }
|