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 Moo;
with 'DX::Role::Action';
+with 'DX::Lib::FS::Role::RunOn';
has path => (is => 'ro', required => 1);
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));
+ $self->_call_guts(create_file => $self->mode, $self->data);
+ +(path_status => $self->path);
+}
+
+sub but_add {
+ $_[0]->but(data => $_[0]->data.$_[1]."\n")
}
1;