Luc Didry 40deab
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
Luc Didry 40deab
package Lufi::Command::cron::cleanbdd;
Luc Didry 40deab
use Mojo::Base 'Mojolicious::Command';
Luc Didry d909b8
use Lufi::DB::File;
Luc Didry 40deab
use FindBin qw($Bin);
Luc Didry 40deab
Luc Didry 40deab
has description => 'Delete IP addresses from database after configured delay.';
Luc Didry 40deab
has usage => sub { shift->extract_usage };
Luc Didry 40deab
Luc Didry 40deab
sub run {
Luc Didry 40deab
    my $c = shift;
Luc Didry 40deab
Luc Didry d909b8
    my $cfile = Mojo::File->new($Bin, '..' , 'lufi.conf');
Luc Didry d909b8
    if (defined $ENV{MOJO_CONFIG}) {
Luc Didry d909b8
        $cfile = Mojo::File->new($ENV{MOJO_CONFIG});
Luc Didry d909b8
        unless (-e $cfile->to_abs) {
Luc Didry d909b8
            $cfile = Mojo::File->new($Bin, '..', $ENV{MOJO_CONFIG});
Luc Didry d909b8
        }
Luc Didry d909b8
    }
Luc Didry 40deab
    my $config = $c->app->plugin('Config', {
Luc Didry d909b8
        file    => $cfile,
Luc Didry 40deab
        default => {
Luc Didry d909b8
            dbtype         => 'sqlite',
Luc Didry 40deab
            keep_ip_during => 365,
Luc Didry 40deab
        }
Luc Didry 40deab
    });
Luc Didry 40deab
Luc Didry 40deab
    my $separation = time() - $config->{keep_ip_during} * 86400;
Luc Didry 40deab
Luc Didry d909b8
    Lufi::DB::File->new(app => $c->app)->delete_creator_before($separation);
Luc Didry 40deab
}
Luc Didry 40deab
Luc Didry 40deab
=encoding utf8
Luc Didry 40deab
Luc Didry 40deab
=head1 NAME
Luc Didry 40deab
Luc Didry 40deab
Lufi::Command::cron::cleanbdd - Delete IP addresses from database after configured delay
Luc Didry 40deab
Luc Didry 40deab
=head1 SYNOPSIS
Luc Didry 40deab
Luc Didry 40deab
  Usage: script/lufi cron cleanbdd
Luc Didry 40deab
Luc Didry 40deab
=cut
Luc Didry 40deab
Luc Didry 40deab
1;