Skip to content

hercules-team/ruby-augeas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby bindings for augeas

The class Augeas provides bindings to Augeas library.

Building

To build the bindings, which unfortunately includes installing them from a gem, you need to have Augeas and its header file installed as well as pkg-config.

On Fedora, you can do that simply by running

dnf install augeas-devel pkgconfig

On OSX, you need to set up Homebrew and then run

brew install augeas pkg-config

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

Accessing Data

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

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

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