aboutsummaryrefslogtreecommitdiffstats
path: root/misc/deleteExpiredEntries.pl
blob: 12349209f2727a0d4b19e5c3cb1bee059441939a (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/perl

use 5.010_000;
use strict;
use warnings;

our $VERSION = '0.01';

=head1 NAME

deleteExpiredEntries.pl - Clean the LDAP directory out of expired entries.

=head1 SYNOPSIS

B<deleteExpiredEntries.pl> [maximum age in seconds]

=cut


#######################################################################
#

use Pod::Usage;
use Config::Auto;
use lib 'lib';
use Fripost::Schema::Auth;
use Fripost::Schema::Pending;
use POSIX 'strftime';

# TODO: put that in a config file
my $config = { ldap_bind_dn => [ 'cn=DeletePendingEntries','ou=services','o=mailHosting','dc=fripost,dc=dev' ]
             , ldap_uri => 'ldap://127.0.0.1:389/'
             , ldap_suffix => [ 'ou=virtual','o=mailHosting','dc=fripost,dc=dev' ]
             };

my $maxage = $ARGV[0] // 86400; # 24h by default
my $fp = Fripost::Schema::Auth::->auth( undef, 'deletependingentries', %$config ) // die;
Fripost::Schema::Pending::find ($fp, -quiet => 1, -delete => 1,
                                     '-max-age' => $maxage);
$fp->done;



#######################################################################
#

=head1 AUTHOR

Guilhem Moulin C<< <guilhem at fripost.org> >>

=head1 COPYRIGHT

Copyright 2013 Guilhem Moulin.

=head1 LICENSE

This program is free software; you can redistribute it and/or modify it
under the same terms as perl itself.

=cut