# NagiosConfig

Parses /etc/{nagios{3,},icinga}/*.cfg

Authors: Sebastien Aperghis-Tramoni seba.nosp@m.stien@apergh.nosp@m.is.net Raphaël Pinson rap.nosp@m.hink@gmai.nosp@m.l.com

Summary

NagiosConfig | Parses /etc/{nagios{3,},icinga}/*.cfg
License | This file is licenced under the LGPL v2+, like the rest of Augeas.
Lens Usage | To be documented
Configuration files | This lens applies to /etc/{nagios{3,},icinga}/*.cfg.
Utility variables/functions |
param_def | define a field
macro_def | Macro line, as used in resource.cfg
Entries |
param | Params can have sub params
macro |
Lens |
entry | Define the accepted entries, such as param for regular configuration files, and macro for resources.cfg .
lns | main structure
filter |

### License

This file is licenced under the LGPL v2+, like the rest of Augeas.

### Lens Usage

To be documented

### Configuration files

This lens applies to /etc/{nagios{3,},icinga}/*.cfg. See filter.

### Utility variables/functions

### param_def

> let param_def = let space_in = /[^ \t\n][^\n=]*[^ \t\n]|[^ \t\n]/ in key /[A-Za-z0-9_]+/ . Sep.opt_space . Sep.equal . Sep.opt_space . store space_in

define a field

### macro_def

> let macro_def = let macro = /\$[A-Za-z0-9]+\$/ in let macro_decl = Rx.word | Rx.fspath in key macro . Sep.space_equal . store macro_decl

Macro line, as used in resource.cfg

### Entries

### param

> let param = [ Util.indent . param_def . [ Sep.space . param_def ]* . Util.eol ]

Params can have sub params

### macro

> let macro = [ Util.indent . macro_def . Util.eol ]

### Lens

### entry

> let entry = param | macro

Define the accepted entries, such as param for regular configuration files, and macro for resources.cfg .

### lns

> let lns = ( Util.empty | Util.comment | entry )*

main structure

### filter

> let param_def = let space_in = /[^ \t\n][^\n=]*[^ \t\n]|[^ \t\n]/ in key /[A-Za-z0-9_]+/ . Sep.opt_space . Sep.equal . Sep.opt_space . store space_in

define a field

> let macro_def = let macro = /\$[A-Za-z0-9]+\$/ in let macro_decl = Rx.word | Rx.fspath in key macro . Sep.space_equal . store macro_decl

Macro line, as used in resource.cfg

> let param = [ Util.indent . param_def . [ Sep.space . param_def ]* . Util.eol ]

Params can have sub params

> let macro = [ Util.indent . macro_def . Util.eol ]

> let entry = param | macro

Define the accepted entries, such as param for regular configuration files, and macro for resources.cfg .

> let lns = ( Util.empty | Util.comment | entry )*

main structure
Close