Commit | Line | Data |
4d2ad771 |
1 | package DX::Lib::FS::Action::CreateDirectory; |
2 | |
3 | use aliased 'DX::Lib::FS::Fact::PathStatus'; |
4 | use aliased 'DX::Lib::FS::Fact::PathStatusInfo'; |
0d1a41d9 |
5 | use DX::Lib::FS::Guts; |
4d2ad771 |
6 | use Moo; |
7 | |
8 | with 'DX::Role::Action'; |
9 | |
10 | has path => (is => 'ro', required => 1); |
11 | |
640fa37e |
12 | has mode => (is => 'ro', predicate => 1); |
13 | |
4d2ad771 |
14 | sub 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 | |
25 | sub _do_run { |
26 | my ($self) = @_; |
0d1a41d9 |
27 | DX::Lib::FS::Guts->create_directory($self->path, $self->mode); |
28 | +(path_status => $self->path); |
4d2ad771 |
29 | } |
30 | |
31 | 1; |