Bump to 1.14.1
[platform/upstream/augeas.git] / lenses / fstab.aug
1 (* Parsing /etc/fstab *)
2
3 module Fstab =
4   autoload xfm
5
6   let sep_tab = Sep.tab
7   let sep_spc = Sep.space
8   let comma   = Sep.comma
9   let eol     = Util.eol
10
11   let comment = Util.comment
12   let empty   = Util.empty
13
14   let file    = /[^# \t\n]+/
15
16   (* An option label can't contain comma, comment, equals, or space *)
17   let optlabel = /[^,#= \n\t]+/
18   let spec    = /[^,# \n\t][^ \n\t]*/
19
20   let comma_sep_list (l:string) =
21     let value = [ label "value" . Util.del_str "=" . ( store Rx.neg1 )? ] in
22       let lns = [ label l . store optlabel . value? ] in
23          Build.opt_list lns comma
24
25   let record = [ seq "mntent" .
26                    Util.indent .
27                    [ label "spec" . store spec ] . sep_tab .
28                    [ label "file" . store file ] . sep_tab .
29                    comma_sep_list "vfstype" .
30                    (sep_tab . comma_sep_list "opt" .
31                     (sep_tab . [ label "dump" . store /[0-9]+/ ] .
32                      ( sep_spc . [ label "passno" . store /[0-9]+/ ])? )? )?
33                  . Util.comment_or_eol ]
34
35   let lns = ( empty | comment | record ) *
36   let filter = incl "/etc/fstab"
37              . incl "/etc/mtab"
38
39   let xfm = transform lns filter
40
41 (* Local Variables: *)
42 (* mode: caml *)
43 (* End: *)