nut/scripts/augeas/nutupsdconf.aug.in
2022-06-29 12:37:36 +02:00

69 lines
2.5 KiB
Text

(*
Module: NutUpsdConf
Parses @CONFPATH@/upsd.conf
Author: Raphael Pinson <raphink@gmail.com>
Frederic Bohe <fredericbohe@eaton.com>
Arnaud Quette <arnaud.quette@gmail.com>
About: License
This file is licensed under the GPL.
About: Lens Usage
Sample usage of this lens in augtool
* Print all network interface upsd will listen to
> print /files@CONFPATH@/upsd.conf/LISTEN
About: Configuration files
This lens applies to @CONFPATH@/upsd.conf. See <filter>.
*)
module NutUpsdConf =
autoload upsd_xfm
(************************************************************************
* Group: UPSD.CONF
*************************************************************************)
(* general *)
let sep_spc = Util.del_ws_spc
let opt_spc = Util.del_opt_ws ""
let eol = Util.eol
let ip = /[0-9A-Za-z\.:]+/
let num = /[0-9]+/
let word = /[^"#; \t\n]+/
let empty = Util.empty
let comment = Util.comment
let path = word
let upsd_maxage = [ opt_spc . key "MAXAGE" . sep_spc . store num . eol ]
let upsd_trackingdelay = [ opt_spc . key "TRACKINGDELAY" . sep_spc . store num . eol ]
let upsd_allow_no_device = [ opt_spc . key "ALLOW_NO_DEVICE" . sep_spc . store num . eol ]
let upsd_statepath = [ opt_spc . key "STATEPATH" . sep_spc . store path . eol ]
let upsd_listen = [ opt_spc . key "LISTEN" . sep_spc
. [ label "interface" . store ip ]
. [ sep_spc . label "port" . store num]? ]
let upsd_listen_list = upsd_listen . eol
let upsd_maxconn = [ opt_spc . key "MAXCONN" . sep_spc . store num . eol ]
let upsd_certfile = [ opt_spc . key "CERTFILE" . sep_spc . store path . eol ]
(************************************************************************
* MAXAGE seconds
* TRACKINGDELAY seconds
* ALLOW_NO_DEVICE Boolean
* STATEPATH path
* LISTEN interface port
* Multiple LISTEN addresses may be specified. The default is to bind to 0.0.0.0 if no LISTEN addresses are specified.
* LISTEN 127.0.0.1 LISTEN 192.168.50.1 LISTEN ::1 LISTEN 2001:0db8:1234:08d3:1319:8a2e:0370:7344
*
*************************************************************************)
let upsd_other = upsd_maxage | upsd_trackingdelay | upsd_allow_no_device | upsd_statepath | upsd_listen_list | upsd_maxconn | upsd_certfile
let upsd_lns = (upsd_other|comment|empty)*
let upsd_filter = (incl "@CONFPATH@/upsd.conf")
. Util.stdexcl
let upsd_xfm = transform upsd_lns upsd_filter