#!/usr/bin/perl

use strict;
use warnings;

use Biblio::SIF::Patron;
use Getopt::Long
    qw(:config posix_default gnu_compat require_order bundling no_ignore_case);

my $term;

GetOptions(
    't|terminator=s' => \$term,
    'z' => sub { $term = "\x00\n" },
    'Z' => sub { $term = "\x0a\x00\x0a" },
    '0' => sub { $term = "\x00" },
    'n' => sub { $term = "\n" },
    'crlf' => sub { $term = "\x0d\x0a" },
);

my $date = @ARGV ? shift(@ARGV) : exit(1);

$date =~ /^(\d\d\d\d)[-.]?(\d\d)[-.]?(\d\d)$/ or exit 1;
$date = "$1.$2.$3";

my $iter = Biblio::SIF::Patron->iterator(
    @ARGV ? shift @ARGV : \*STDIN,
    'terminator' => $term,
);
{
    while (defined (my $patron = $iter->())) {
        $patron->purge_date($date);
        print $patron;
    }
}

