surprise! Object::Remote!
[scpubgit/DKit.git] / lib / DX / Lib / FS / Action / CreateDirectory.pm
CommitLineData
4d2ad771 1package DX::Lib::FS::Action::CreateDirectory;
2
3use aliased 'DX::Lib::FS::Fact::PathStatus';
4use aliased 'DX::Lib::FS::Fact::PathStatusInfo';
5use Moo;
6
7with 'DX::Role::Action';
9854aea0 8with 'DX::Lib::FS::Role::RunOn';
4d2ad771 9
10has path => (is => 'ro', required => 1);
11
640fa37e 12has mode => (is => 'ro', predicate => 1);
13
4d2ad771 14sub expected_effect {
15 my ($self) = @_;
16 return +(path_status => PathStatus->new(
17 path => $self->path,
640fa37e 18 info => PathStatusInfo->new(
19 is_directory => 1,
20 mode => ($self->has_mode ? $self->mode : '')
21 )
4d2ad771 22 ));
23}
24
25sub _do_run {
26 my ($self) = @_;
9854aea0 27 $self->_call_guts(create_directory => $self->mode);
0d1a41d9 28 +(path_status => $self->path);
4d2ad771 29}
30
311;