blob: 68260a336e0d11dd590405dd09cc02dcc78f9eed (
plain)
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
|
--- augeas-1.1.0/lenses/interfaces.aug
+++ augeas-1.1.0.iface/lenses/interfaces.aug
@@ -36,21 +36,26 @@
let stanza_id (t:string) = key t . sep_spc . sto_to_spc
let stanza_param (l:string) = [ sep_spc . label l . sto_to_spc ]
-(* Define reseverved words *)
-let stanza_word = /(iface|auto|allow-[a-z-]+|mapping)/
+(* Define reseverved words and multi-value options*)
+let stanza_word = /(iface|auto|allow-[a-z-]+|mapping|bond-slaves|bridge-ports)/
+(* Define stanza option indentation *)
+let stanza_indent = del /[ \t]*/ " "
+
(* Define additional lines for multi-line stanzas *)
-let stanza_option = [ del /[ \t]*/ " "
+let stanza_option = [ stanza_indent
. key ( /[a-z_-]+/ - stanza_word )
. sep_spc
. sto_to_eol ]
+(* Define space-separated array *)
+let array (r:regexp) (t:string) = del r t . label t . counter t
+ . [ sep_spc . seq t . sto_to_spc ]+
+
(************************************************************************
* AUTO
*************************************************************************)
-let array (r:regexp) (t:string) = del r t . label t . counter t
- . [ sep_spc . seq t . sto_to_spc ]+
let auto = [ array /(allow-)?auto/ "auto" . eol ]
(************************************************************************
@@ -74,12 +79,18 @@
* IFACE
*************************************************************************)
+let multi_option (t:string) = [ stanza_indent . array t t . eol ]
+
let iface = [ Util.indent
. stanza_id "iface"
. stanza_param "family"
. stanza_param "method"
. eol
- . (stanza_option|comment|empty)* ]
+ . ( stanza_option
+ | multi_option "bond-slaves"
+ | multi_option "bridge-ports"
+ | comment
+ | empty )* ]
(************************************************************************
* STANZAS
|