forked from hercules-team/augeas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
approx.aug
59 lines (42 loc) · 1.26 KB
/
approx.aug
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
(*
Module: Approx
Parses /etc/approx/approx.conf
Author: David Lutterkort <lutter@redhat.com>
About: Reference
This lens tries to keep as close as possible to `man 5 approx.conf` where possible.
About: License
This file is licenced under the LGPL v2+, like the rest of Augeas.
About: Lens Usage
See <lns>.
About: Configuration files
This lens applies to /etc/approx/approx.conf.
About: Examples
The <Test_Approx> file contains various examples and tests.
*)
module Approx =
autoload xfm
(* Variable: eol
An <Util.eol> *)
let eol = Util.eol
(* Variable: indent
An <Util.indent> *)
let indent = Util.indent
(* Variable: key_re *)
let key_re = /\$?[A-Za-z0-9_.-]+/
(* Variable: sep *)
let sep = /[ \t]+/
(* Variable: value_re *)
let value_re = /[^ \t\n](.*[^ \t\n])?/
(* View: comment *)
let comment = [ indent . label "#comment" . del /[#;][ \t]*/ "# "
. store /([^ \t\n].*[^ \t\n]|[^ \t\n])/ . eol ]
(* View: empty
An <Util.empty> *)
let empty = Util.empty
(* View: kv *)
let kv = [ indent . key key_re . del sep " " . store value_re . eol ]
(* View: lns *)
let lns = (empty | comment | kv) *
(* View: filter *)
let filter = incl "/etc/approx/approx.conf"
let xfm = transform lns filter