Rex::Commands::Augeas(3p)

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";