summaryrefslogtreecommitdiff
path: root/scripts/git/sort-into-yyyy
blob: 46939e91423e796ea5559372596b6cdcde2c6341 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl -w

use Cwd;
use File::Copy;
use Git::Wrapper;

$git = Git::Wrapper->new(getcwd);

open $fh, "<", "$ENV{HOME}/doc/emacs-org-agenda-files";
for (<$fh>) {
    chomp;
    s{^~/doc/}{};
    $agenda_files{m{^org/} ? $_ : "org/$_"}++;
}

mkdir "howm";

for (@ARGV) {
    $agenda_files{$_} and next;
    @entries = $git->log("--follow", "--diff-filter=A", $_);
    $entries[$#entries]->date =~ /\s(\d{4})\s/
      or die "invalid date?  " . $entries[$#entries]->date;
    mkdir "howm/$1";
    $git->mv($_, "howm/$1");
    print "$_ -> howm/$1\n";
}