Ruby bindings for augeas
<img src=“https://travis-ci.org/dotdoom/augeas.png?branch=master” alt=“Travis CI build results” /> <img src=“https://badge.fury.io/rb/augeas.png” alt=“Gem Version” />
The class Augeas provides bindings to augeas [augeas.net] library.
Usage: Setting Data
Augeas::create 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::create {
|aug| aug.get("/files/etc/sysconfig/firstboot/RUN_FIRSTBOOT") }
Usage: Removing Data
Augeas::create 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 using the :no_modl_autoload
flag, no files are read on startup; that allows setting up a custom transform.
Augeas::create(:root => "/var/tmp/augeas-root",
:loadpath => "/usr/local/share/mylenses",
:no_modl_autoload => true) do |aug|
aug.transform(:lens => "Aliases.lns", :incl => "/etc/aliases")
aug.load
aug.get("/files/etc/aliases/*[name = 'postmaster']/value")
end
Build Dependencies
To build or install this gem manually, headers for libaugeas and libxml are needed. Additionally the pkg-config tool has to be installed.
Deprecation Warning
The Augeas API has been heavily rewritten in order to better support errors.
To use the new API, just use Augeas::create
instead of Augeas::open
. This is the documentation for the Augeas::create
method.
Create a new Augeas instance and return it.
Use :root
as the filesystem root. If :root
is nil
, use the value of the environment variable AUGEAS_ROOT
. If that doesn’t exist either, use “/”.
:loadpath
is a colon-spearated list of directories that modules should be searched in. This is in addition to the standard load path and the directories in AUGEAS_LENS_LIB
.
The following flags can be specified in a hash. They all default to false and can be enabled by setting them to true
:type_check
- typecheck lenses (since it can be very expensive it is not done by default)
:no_stdinc
- do not use the builtin load path for modules
:no_load
- do not load the tree during the initialization phase
:no_modl_autoload
- do not load the tree during the initialization phase
:enable_span
- track the span in the input nodes
:save_mode
can be one of :backup
, :newfile
, :noop
as explained below.
:noop - make save a no-op process, just record what would have changed
:backup - keep the original file with an .augsave extension
:newfile - save changes into a file with an .augnew extension and do
not overwrite the original file.
When a block is given, the Augeas instance is passed as the only argument into the block and closed when the block exits. With no block, the Augeas instance is returned.