(*
Module: NagiosConfig
Parses /etc/nagios3/*.cfg
Authors: Sebastien Aperghis-Tramoni
Raphaƫl Pinson
About: License
This file is licenced under the LGPL v2+, like the rest of Augeas.
About: Lens Usage
To be documented
About: Configuration files
This lens applies to /etc/nagios3/*.cfg. See .
*)
module NagiosCfg =
autoload xfm
(* View: param_def
define a field *)
let param_def =
let space_in = /[^ \t\n][^\n=]*[^ \t\n]|[^ \t\n]/
in key /[A-Za-z0-9_]+/
. Sep.space_equal
. store space_in
(* View: param
Params can have sub params *)
let param =
[ Util.indent . param_def
. [ Sep.space . param_def ]*
. Util.eol ]
(* View: lns
main structure *)
let lns = ( Util.empty | Util.comment | param )*
(* View: filter *)
let filter = incl "/etc/nagios3/*.cfg"
. excl "/etc/nagios3/commands.cfg"
. excl "/etc/nagios3/resource.cfg"
. Util.stdexcl
let xfm = transform lns filter