simple and stupid list creation. sets up aliases, creates the object, stores it.
[p5sagit/Promulger.git] / lib / Promulger / List.pm
CommitLineData
514dce63 1package Promulger::List;
2use Moose;
3
4use Carp;
5use Dir::Self;
6use File::Slurp qw/read_file write_file/;
7
8has listname => (
9 is => 'ro',
10 isa => 'Str',
11 required => 1,
12);
13
14has active => (
15 is => 'rw',
16 isa => 'Bool',
17 required => 1,
18 default => 1,
19);
20
21sub 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
351;