package DX::Lib::FS::Action::SetPathMode;

use Moo;

has path_status => (is => 'ro', required => 1, handles => [ 'path' ]);
has mode => (is => 'ro', required => 1);

with 'DX::Role::Action';
with 'DX::Lib::FS::Role::RunOn';

sub expected_effect {
  my ($self) = @_;
  my $ps = $self->path_status;
  +(path_status => $ps->but(info => $ps->info->but(mode => $self->mode)));
}

sub _do_run {
  my ($self) = @_;
  $self->_call_guts(set_path_mode => $self->mode);
  +(path_status => $self->path);
}

1;
