NAME

Rex::Commands::Augeas - An augeas module for (R)?ex

DESCRIPTION

This is a simple module to manipulate configuration files with the help of augeas.

SYNOPSIS

my $k = augeas exists => "/files/etc/hosts/*/ipaddr", "127.0.0.1";
   
augeas insert => "/files/etc/hosts",
          label => "01",
          after => "/7",
          ipaddr => "192.168.2.23",
          canonical => "test";
  
augeas dump => "/files/etc/hosts";

augeas modify =>
   "/files/etc/ssh/sshd_config/PermitRootLogin" => "without-password",
   on_change => sub {
      service ssh => "restart";
   };

EXPORTED FUNCTIONS

augeas($action, @options)

It returns 1 on success and 0 on failure.

Actions:

modify

This modifies the keys given in @options in $file.

augeas modify =>
          "/files/etc/hosts/7/ipaddr"    => "127.0.0.2",
          "/files/etc/hosts/7/canonical" => "test01",
          on_change                      => sub { say "I changed!" };
remove

Remove an entry.

augeas remove    => "/files/etc/hosts/2",
       on_change => sub { say "I changed!" };
insert

Insert an item into the file. Here, the order of the options is important. If the order is wrong it won't save your changes.

augeas insert => "/files/etc/hosts",
          label     => "01",
          after     => "/7",
          ipaddr    => "192.168.2.23",
          alias     => "test02",
          on_change => sub { say "I changed!" };
dump

Dump the contents of a file to STDOUT.

augeas dump => "/files/etc/hosts";
exists

Check if an item exists.

my $exists = augeas exists => "/files/etc/hosts/*/ipaddr" => "127.0.0.1";
if($exists) {
    say "127.0.0.1 exists!";
}
get

Returns the value of the given item.

my $val = augeas get => "/files/etc/hosts/1/ipaddr";