/usr/share/augeas/lenses/dist/nutupsmonconf.aug is in nut-client 2.7.1-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | (*
Module: NutUpsmonConf
Parses /etc/nut/upsmon.conf
Author: Raphael Pinson <raphink@gmail.com>
Frederic Bohe <fredericbohe@eaton.com>
About: License
This file is licensed under the GPL.
About: Lens Usage
Sample usage of this lens in augtool
* Print all notification messages
> print /files/etc/nut/upsmon.conf/NOTIFYMSG
About: Configuration files
This lens applies to /etc/nut/upsmon.conf. See <filter>.
*)
module NutUpsmonConf =
autoload upsmon_xfm
(************************************************************************
* Group: UPSMON.CONF
*************************************************************************)
(* general *)
let del_spc = Util.del_opt_ws ""
let sep_spc = Util.del_ws_spc
let eol = Util.eol
let num = /[0-9]+/
let word = /[^"#; \t\n]+/
let empty = Util.empty
let comment = Util.comment
let quoted_string = del "\"" "\"" . store /[^"\n]+/ . del "\"" "\""
(* UPS identifier
* <upsname>[@<hostname>[:<port>]]
*
* There might be a cleaner way to write this
* but I'm stuck with (hostname | hostname . port)?
*)
let hostname = [ label "hostname" . store /[^ \t\n:]+/ ]
let port = [ label "port" . store num ]
let identifier = [ label "upsname" . store /[^ \t\n@]+/ ]
. ( ( Util.del_str "@" . hostname )
| ( Util.del_str "@" . hostname
. Util.del_str ":" . port ) )?
let upsmon_num_re = "DEADTIME"
| "FINALDELAY"
| "HOSTSYNC"
| "MINSUPPLIES"
| "NOCOMMWARNTIME"
| "POLLFREQ"
| "POLLFREQALERT"
| "RBWARNTIME"
let upsmon_num = [ del_spc . key upsmon_num_re . sep_spc . store num . eol ]
let upsmon_word = [ del_spc . key "RUN_AS_USER" . sep_spc . store word . eol ]
let upsmon_file_re = "NOTIFYCMD"
| "POWERDOWNFLAG"
| "SHUTDOWNCMD"
let sto_to_eol = IniFile.sto_to_eol
(* here we should support both quoted and not quotted
* string but I can't manage to find the right way of doing this
*)
let upsmon_file = [ del_spc . key upsmon_file_re . sto_to_eol . eol ]
(* MONITOR system powervalue username password type *)
let upsmon_monitor = [ del_spc . key "MONITOR" . sep_spc
. [ label "system" . identifier ] . sep_spc
. [ label "powervalue" . store num ] . sep_spc
. [ label "username" . store word ] . sep_spc
. [ label "password" . store word ] . sep_spc
. [ label "type" . store word ] . eol ]
let upsmon_notify_type = "ONLINE"
| "ONBATT"
| "LOWBATT"
| "FSD"
| "COMMOK"
| "COMMBAD"
| "SHUTDOWN"
| "REPLBATT"
| "NOCOMM"
| "NOPARENT"
let upsmon_notify = [ del_spc . key "NOTIFYMSG" . sep_spc
. [ label "type" . store upsmon_notify_type . sep_spc ]
. [ label "message" . quoted_string ] . eol ]
let flags = "IGNORE"
| "SYSLOG"
| "WALL"
| "EXEC"
let plus = [ del /\+*/ "" ]
(*let entries = /IGNORE|SYSLOG|WALL|EXEC+/*)
let record = [ seq "record" . plus . store flags ]
let upsmon_notify_flag = [ counter "record"
. del_spc . key "NOTIFYFLAG" . sep_spc
. [ label "type" . store upsmon_notify_type . sep_spc ]
. record+ . eol ]
let upsmon_record = upsmon_num|upsmon_word|upsmon_file|upsmon_monitor|upsmon_notify|upsmon_notify_flag
let upsmon_lns = (upsmon_record|comment|empty)*
let upsmon_filter = ( incl "/etc/nut/upsmon.conf" )
. Util.stdexcl
let upsmon_xfm = transform upsmon_lns upsmon_filter
|