Dotfiles, utilities, and other apparatus.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
1018 B

#!/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;
}