#!perl

use strict;
use warnings;
use autodie;

use Getopt::Long;
use Date::Manip;
use Date::Manip::Delta;

my %opts = (
    first_date => '',
);

Getopt::Long::Configure ("pass_through");

GetOptions(\%opts, 'first_date|first|f=s');

my @args = sort(@ARGV);

my $page = 1;
my $date = Date::Manip::Date->new;
$date->parse($opts{first_date});

my $_tmo = Date::Manip::Delta->new;
$_tmo->parse("+1 day");

foreach my $arg (@args) {
    renameFile($arg, $date, $page);
    $page++;
    if($page >4) {
        $page = 1;
        $date = tomorrow($date);
    }
}


sub tomorrow {
    my $date = shift;
    $date = $date->calc($_tmo);

    return $date;
}

sub renameFile {
    my $file = shift;
    my $date = shift;
    my $page = shift;

    my ($year, $month, $day) = $date->value;

    my $mv = sprintf "mv $file hw%04d%02d%02d-%02d.jpg", $year, $month, $day, $page;
    print "$mv\n";

}

