simple and stupid list creation. sets up aliases, creates the object, stores it.
[p5sagit/Promulger.git] / lib / Promulger / List.pm
1 package Promulger::List;
2 use Moose;
3
4 use Carp;
5 use Dir::Self;
6 use File::Slurp qw/read_file write_file/;
7
8 has listname => (
9   is       => 'ro',
10   isa      => 'Str',
11   required => 1,
12 );
13
14 has active => (
15   is       => 'rw',
16   isa      => 'Bool',
17   required => 1,
18   default  => 1,
19 );
20
21 sub setup_aliases_at {
22   my($self, $config) = @_;
23   my $name = $self->listname;
24   my @current_contents = read_file $config->{aliases};
25   my @aliases = ($name, "${name}-request");
26   for my $alias (@aliases) {
27     if(grep { $_ =~ /^${alias}:/ } @current_contents) {
28       croak "${alias} already in $config->{aliases}";
29     }
30     push @current_contents, qq(${alias}: "|$config->{bin_root}/pmg msg"\n);
31   }
32   write_file $config->{aliases}, @current_contents;
33 }
34
35 1;