Commit | Line | Data |
514dce63 |
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; |