X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDX%2FLib%2FFS%2FAction%2FCreateFile.pm;h=e2b874bf725337ab8f19b736f59a46b7815a6877;hb=0d1a41d9db9e712b545964675ede067d69d40978;hp=37629aa768dab21edefc25f547a1e40d4f04b9cf;hpb=887a32a0d7b5b7f8b650bcc277131f9dc4501709;p=scpubgit%2FDKit.git diff --git a/lib/DX/Lib/FS/Action/CreateFile.pm b/lib/DX/Lib/FS/Action/CreateFile.pm index 37629aa..e2b874b 100644 --- a/lib/DX/Lib/FS/Action/CreateFile.pm +++ b/lib/DX/Lib/FS/Action/CreateFile.pm @@ -3,7 +3,7 @@ package DX::Lib::FS::Action::CreateFile; use aliased 'DX::Lib::FS::Fact::FileContent'; use aliased 'DX::Lib::FS::Fact::PathStatus'; use aliased 'DX::Lib::FS::Fact::PathStatusInfo'; -use Fcntl qw(O_CREAT O_WRONLY); +use DX::Lib::FS::Guts; use Moo; with 'DX::Role::Action'; @@ -30,19 +30,8 @@ sub expected_effect { sub _do_run { my ($self) = @_; - my $fh; - if ($self->has_mode) { - my $umask = umask(0000); - sysopen( - $fh, $self->path, O_CREAT | O_WRONLY, oct($self->mode) - ) or do { umask($umask); die "Couldn't create ${\$self->path}: $!" }; - umask($umask); - } else { - sysopen($fh, $self->path, O_CREAT | O_WRONLY) - or die "Couldn't create ${\$self->path}: $!"; - } - print $fh $self->data if length($self->data); - +(path_status => PathStatus->new(path => $self->path)); + DX::Lib::FS::Guts->create_file($self->path, $self->mode, $self->data); + +(path_status => $self->path); } sub but_add {