NAME
Rex::Commands::File - Transparent File Manipulation
DESCRIPTION
With this module you can manipulate files.
SYNOPSIS
task "read-passwd", "server01", sub {
my $fh = file_read "/etc/passwd";
for my $line = ($fh->read_all) {
print $line;
}
$fh->close;
};
task "read-passwd2", "server01", sub {
say cat "/etc/passwd";
};
task "write-passwd", "server01", sub {
my $fh = file_write "/etc/passwd";
$fh->write("root:*:0:0:root user:/root:/bin/sh\n");
$fh->close;
};
delete_lines_matching "/var/log/auth.log", matching => "root";
delete_lines_matching "/var/log/auth.log", matching => qr{Failed};
delete_lines_matching "/var/log/auth.log",
matching => "root", qr{Failed}, "nobody";
EXPORTED FUNCTIONS
- template($file, @params)
-
Parse a template and return the content.
my $content = template("/files/templates/vhosts.tpl", name => "test.lan", webmaster => 'webmaster@test.lan');
- file($file_name, %options)
- file_write($file_name)
-
This function opens a file for writing (it will truncate the file if it already exists). It returns a Rex::FS::File object on success.
On failure it will die.
my $fh; eval { $fh = file_write("/etc/groups"); }; # catch an error if($@) { print "An error occured. $@.\n"; exit; } # work with the filehandle $fh->write("..."); $fh->close;
- file_append($file_name)
- file_read($file_name)
-
This function opens a file for reading. It returns a Rex::FS::File object on success.
On failure it will die.
my $fh; eval { $fh = read("/etc/groups"); }; # catch an error if($@) { print "An error occured. $@.\n"; exit; } # work with the filehandle my $content = $fh->read_all; $fh->close;
- cat($file_name)
-
This function returns the complete content of $file_name as a string.
print cat "/etc/passwd";
- delete_lines_matching($file, $regexp)
-
Delete lines that match $regexp in $file.
task "clean-logs", sub { delete_lines_matching "/var/log/auth.log" => "root"; };
- append_if_no_such_line($file, $new_line, @regexp)
-
Append $new_line to $file if none in @regexp is found.
task "add-group", sub { append_if_no_such_line "/etc/groups", "mygroup:*:100:myuser1,myuser2"; };