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