86134483eb4cbd77c4f8b2a0f078e0a79628aa94
[scpubgit/DKit.git] / lib / DX / Lib / FS / Action / SetPathMode.pm
1 package DX::Lib::FS::Action::SetPathMode;
2
3 use DX::Lib::FS::Guts;
4 use Moo;
5
6 has path_status => (is => 'ro', required => 1);
7 has mode => (is => 'ro', required => 1);
8
9 with 'DX::Role::Action';
10
11 sub expected_effect {
12   my ($self) = @_;
13   my $ps = $self->path_status;
14   +(path_status => $ps->but(info => $ps->info->but(mode => $self->mode)));
15 }
16
17 sub _do_run {
18   my ($self) = @_;
19   DX::Lib::FS::Guts->set_path_mode($self->path, $self->mode);
20   +(path_status => $self->path);
21 }
22
23 1;