beginnings of FS lib
[scpubgit/DKit.git] / lib / DX / Lib / FS / Action / CreateDirectory.pm
1 package DX::Lib::FS::Action::CreateDirectory;
2
3 use aliased 'DX::Lib::FS::Fact::PathStatus';
4 use aliased 'DX::Lib::FS::Fact::PathStatusInfo';
5 use Moo;
6
7 with 'DX::Role::Action';
8
9 has path => (is => 'ro', required => 1);
10
11 sub expected_effect {
12   my ($self) = @_;
13   return +(path_status => PathStatus->new(
14     path => $self->path,
15     info => PathStatusInfo->new(is_directory => 1, mode => '')
16   ));
17 }
18
19 sub _do_run {
20   my ($self) = @_;
21   mkdir($self->path) or die "Couldn't mkdir ${\$self->path}: $!";
22   +(path_status => PathStatus->new(path => $self->path));
23 }
24
25 1;