Blame lenses/nrpe.aug

Packit Service a2ae7a
(*
Packit Service a2ae7a
Module: Nrpe
Packit Service a2ae7a
  Parses nagios-nrpe configuration files.
Packit Service a2ae7a
Packit Service a2ae7a
Author: Marc Fournier <marc.fournier@camptocamp.com>
Packit Service a2ae7a
Packit Service a2ae7a
About: License
Packit Service a2ae7a
  This file is licensed under the LGPL v2+, like the rest of Augeas.
Packit Service a2ae7a
*)
Packit Service a2ae7a
Packit Service a2ae7a
module Nrpe =
Packit Service a2ae7a
  autoload xfm
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
let eol = Util.eol
Packit Service a2ae7a
let eq = Sep.equal
Packit Service a2ae7a
Packit Service a2ae7a
(* View: word *)
Packit Service a2ae7a
let word = /[^=\n\t ]+/
Packit Service a2ae7a
Packit Service a2ae7a
(* View: item_re *)
Packit Service a2ae7a
let item_re = /[^#=\n\t\/ ]+/ - (/command\[[^]\/\n]+\]/ | "include" | "include_dir")
Packit Service a2ae7a
Packit Service a2ae7a
(* View: command
Packit Service a2ae7a
    nrpe.cfg usually has many entries defining commands to run
Packit Service a2ae7a
Packit Service a2ae7a
    > command[check_foo]=/path/to/nagios/plugin -w 123 -c 456
Packit Service a2ae7a
    > command[check_bar]=/path/to/another/nagios/plugin --option
Packit Service a2ae7a
*)
Packit Service a2ae7a
let command =
Packit Service a2ae7a
  let obrkt = del /\[/ "[" in
Packit Service a2ae7a
  let cbrkt = del /\]/ "]" in
Packit Service a2ae7a
    [ key "command" .
Packit Service a2ae7a
    [ obrkt . key /[^]\/\n]+/ . cbrkt . eq
Packit Service a2ae7a
            . store /[^\n]+/ . del /\n/ "\n" ]
Packit Service a2ae7a
    ]
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
(* View: item
Packit Service a2ae7a
     regular entries
Packit Service a2ae7a
Packit Service a2ae7a
     > allow_bash_command_substitution=0
Packit Service a2ae7a
*)
Packit Service a2ae7a
let item = [ key item_re . eq . store word . eol ]
Packit Service a2ae7a
Packit Service a2ae7a
(* View: include
Packit Service a2ae7a
    An include entry.
Packit Service a2ae7a
Packit Service a2ae7a
    nrpe.cfg can include more than one file or directory of files
Packit Service a2ae7a
Packit Service a2ae7a
    > include=/path/to/file1.cfg
Packit Service a2ae7a
    > include=/path/to/file2.cfg
Packit Service a2ae7a
*)
Packit Service a2ae7a
let include = [ key "include" .
Packit Service a2ae7a
  [ label "file" . eq . store word . eol ]
Packit Service a2ae7a
]
Packit Service a2ae7a
Packit Service a2ae7a
(* View: include_dir
Packit Service a2ae7a
    > include_dir=/path/to/dir/
Packit Service a2ae7a
*)
Packit Service a2ae7a
let include_dir = [ key "include_dir" .
Packit Service a2ae7a
  [ label "dir" . eq . store word . eol ]
Packit Service a2ae7a
]
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
(* View: comment
Packit Service a2ae7a
    Nrpe comments must start at beginning of line *)
Packit Service a2ae7a
let comment = Util.comment_generic /#[ \t]*/ "# "
Packit Service a2ae7a
Packit Service a2ae7a
(* blank lines and empty comments *)
Packit Service a2ae7a
let empty = Util.empty
Packit Service a2ae7a
Packit Service a2ae7a
(* View: lns
Packit Service a2ae7a
    The Nrpe lens *)
Packit Service a2ae7a
let lns = ( command | include | include_dir | item | comment | empty ) *
Packit Service a2ae7a
Packit Service a2ae7a
(* View: filter
Packit Service a2ae7a
    File filter *)
Packit Service a2ae7a
let filter = incl "/etc/nrpe.cfg" .
Packit Service a2ae7a
             incl "/etc/nagios/nrpe.cfg"
Packit Service a2ae7a
Packit Service a2ae7a
let xfm = transform lns (filter)
Packit Service a2ae7a