aboutsummaryrefslogtreecommitdiffstats
path: root/bin/spamcat
blob: 2986382bddf8a895c93bdb3c7314838254302835 (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
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/perl

=head1 NAME

spamcat - Filter spam by number of messages sent.

=head1 SYNOPSIS

spamcat [options]

=over 8

=item B<--help>

Print a brief help message and exit.

=item B<-c> C<file>

Load configuration from C<file>

=item B<--dumpconfig>

Dump the current configuration.

=back

=head1 DESCRIPTION

B<spamcat> allows you to have disposable email addresses.

=head1 AUTHOR

Brian Cully <bjc@kublai.com>

=cut

use SpamCat;
use SpamCat::Conf;

use Getopt::Long;
use Pod::Usage;

use Data::Dumper;

use strict;
use warnings;

my $DEFAULT_CONFIGFILE = '/usr/local/etc/spamcat.conf';

my ($help, $configfile, $dumpconfig);
GetOptions('help|h'     => \$help,
	   'c=s'        => \$configfile,
	   'dumpconfig' => \$dumpconfig) || pod2usage(2);
pod2usage(1) if $help;

$configfile = $configfile || $DEFAULT_CONFIGFILE;
my %conf = SpamCat::Conf::read($configfile);

if ($dumpconfig) {
  foreach my $k (keys %conf) {
    my $v = $conf{$k};
    if ($k eq 'domains') {
      $v = join ', ', @{$v};
    }
    print uc($k) . " = " . $v . "\n";
  }
  exit;
}

my $sch = SpamCat->new(%conf) ||
  die "Couldn't start spamcat: $!\n";
$sch->deliver;