1 package DX::Lib::FS::Action::CreateDirectory;
3 use aliased 'DX::Lib::FS::Fact::PathStatus';
4 use aliased 'DX::Lib::FS::Fact::PathStatusInfo';
7 with 'DX::Role::Action';
9 has path => (is => 'ro', required => 1);
11 has mode => (is => 'ro', predicate => 1);
15 return +(path_status => PathStatus->new(
17 info => PathStatusInfo->new(
19 mode => ($self->has_mode ? $self->mode : '')
26 if ($self->has_mode) {
27 my $umask = umask(0000);
28 mkdir($self->path, oct($self->mode))
29 or do { umask($umask); die "Couldn't mkdir ${\$self->path}: $!" };
32 mkdir($self->path) or die "Couldn't mkdir ${\$self->path}: $!";
34 +(path_status => PathStatus->new(path => $self->path));