1 (* Group module for Augeas
2 Author: Free Ekanayaka <free@64studio.com>
12 (************************************************************************
14 *************************************************************************)
17 let comment = Util.comment
18 let empty = Util.empty
19 let dels = Util.del_str
24 let sto_to_spc = store Rx.space_in
25 let sto_to_col = Passwd.sto_to_col
28 let password = /[A-Za-z0-9_.!*-]*/
29 let integer = Rx.integer
31 (************************************************************************
33 *************************************************************************)
35 let user = [ label "user" . store word ]
36 let user_list = Build.opt_list user comma
37 let params = [ label "password" . store password . colon ]
38 . [ label "gid" . store integer . colon ]
40 let entry = Build.key_value_line word colon params
45 . [ label "password" . store password? . colon ]
46 . [ label "gid" . store integer? . colon ]
48 [ dels "+" . label "@nisdefault" . overrides? . eol ]
51 (************************************************************************
53 *************************************************************************)
55 let lns = (comment|empty|entry|nisdefault) *
57 let filter = incl "/etc/group"
59 let xfm = transform lns filter