Ruby bindings for augeas

The class Augeas provides bindings to augeas [augeas.net] library.

Usage: Setting Data

Augeas::open do |aug|
  aug.set("/files/etc/sysconfig/firstboot/RUN_FIRSTBOOT", "YES")
  unless aug.save
    raise IOError, "Failed to save changes"
  end
end

Usage: Accessing Data

firstboot = Augeas::open { |aug| aug.get("/files/etc/sysconfig/firstboot/RUN_FIRSTBOOT") }

Usage: Removing Data

Augeas::open do |aug|
  aug.rm("/files/etc/sysconfig/firstboot/RUN_FIRSTBOOT")
  unless aug.save
    raise IOError, "Failed to save changes"
  end
end

Usage: Minimal Setup with a Custom Root

By passing NO_MODL_AUTOLOAD, no files are read on startup; that allows setting up a custom transform.

Augeas::open("/var/tmp/augeas-root", "/usr/local/share/mylenses",
              Augeas::NO_MODL_AUTOLOAD) do |aug|
  aug.transform(:lens => "Aliases.lns", :incl => "/etc/aliases")
  aug.load
  aug.get("/files/etc/aliases/*[name = 'postmaster']/value")
end