Bump to 1.14.1
[platform/upstream/augeas.git] / lenses / networks.aug
1 (*
2 Module: Networks
3   Parses /etc/networks
4
5 Author: Raphael Pinson <raphink@gmail.com>
6
7 About: Reference
8   This lens tries to keep as close as possible to `man 5 networks` where possible.
9
10 About: License
11    This file is licenced under the LGPL v2+, like the rest of Augeas.
12
13 About: Lens Usage
14    To be documented
15
16 About: Configuration files
17    This lens applies to /etc/networks. See <filter>.
18 *)
19
20 module Networks =
21
22 autoload xfm
23
24 (* View: ipv4
25     A network IP, trailing .0 may be omitted *)
26 let ipv4 =
27   let dot     = "." in
28   let digits  = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/ in
29     digits . (dot . digits . (dot . digits . (dot . digits)?)?)?
30
31 (*View: entry *)
32 let entry =
33   let alias = [ seq "alias" . store Rx.word ] in
34       [ seq "network" . counter "alias"
35     . [ label "name" . store Rx.word ]
36     . [ Sep.space . label "number" . store ipv4 ]
37     . [ Sep.space . label "aliases" . Build.opt_list alias Sep.space ]?
38     . (Util.eol|Util.comment) ]
39
40 (* View: lns *)
41 let lns = ( Util.empty | Util.comment | entry )*
42
43 (* View: filter *)
44 let filter = incl "/etc/networks"
45
46 let xfm = transform lns filter