/usr/share/augeas/lenses/dist/cgconfig.aug is in augeas-lenses 1.10.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | (*
Module: cgconfig
Parses /etc/cgconfig.conf
Author:
Ivana Hutarova Varekova <varekova@redhat.com>
Raphael Pinson <raphink@gmail.com>
About: Licence
This file is licensed under the LGPL v2+, like the rest of Augeas.
About: Lens Usage
Sample usage of this lens in augtool
* print all mounted cgroups
print /files/etc/cgconfig.conf/mount
About: Configuration files
This lens applies to /etc/cgconfig.conf. See <filter>.
*)
module Cgconfig =
autoload xfm
let indent = Util.indent
let eol = Util.eol
let comment = Util.comment
let empty = Util.empty
let id = /[a-zA-Z0-9_\/.-]+/
let name = /[^#= \n\t{}\/]+/
let cont_name = /(cpuacct|cpu|devices|ns|cpuset|memory|freezer|net_cls|blkio|hugetlb|perf_event)/
let role_name = /(admin|task)/
let id_name = /(uid|gid|fperm|dperm)/
let address = /[^#; \n\t{}]+/
let qaddress = address|/"[^#;"\n\t{}]+"/
let lbracket = del /[ \t\n]*\{/ " {"
let rbracket = del /[ \t]*\}/ "}"
let eq = indent . Util.del_str "=" . indent
(******************************************
* Function to deal with abc=def; entries
******************************************)
let key_value (key_rx:regexp) (val_rx:regexp) =
[ indent . key key_rx . eq . store val_rx
. indent . Util.del_str ";" ]
(* Function to deal with bracketted entries *)
let brack_entry_base (lnsa:lens) (lnsb:lens) =
[ indent . lnsa . lbracket . lnsb . rbracket ]
let brack_entry_key (kw:regexp) (lns:lens) =
let lnsa = key kw in
brack_entry_base lnsa lns
let brack_entry (kw:regexp) (lns:lens) =
let full_lns = (lns | comment | empty)* in
brack_entry_key kw full_lns
(******************************************
* control groups
******************************************)
let permission_setting = key_value id_name address
(* task setting *)
let t_info = brack_entry "task" permission_setting
(* admin setting *)
let a_info = brack_entry "admin" permission_setting
(* permissions setting *)
let perm_info =
let ce = (comment|empty)* in
let perm_info_lns = ce .
((t_info . ce . (a_info . ce)?)
|(a_info . ce . (t_info . ce)?))? in
brack_entry_key "perm" perm_info_lns
let variable_setting = key_value name qaddress
(* controllers setting *)
let controller_info =
let lnsa = label "controller" . store cont_name in
let lnsb = ( variable_setting | comment | empty ) * in
brack_entry_base lnsa lnsb
(* group { ... } *)
let group_data =
let lnsa = key "group" . Util.del_ws_spc . store id in
let lnsb = ( perm_info | controller_info | comment | empty )* in
brack_entry_base lnsa lnsb
(*************************************************
* mount point
*************************************************)
(* controller = mount_point; *)
let mount_point = key_value name address
(* mount { .... } *)
let mount_data = brack_entry "mount" mount_point
(****************************************************
* namespace
****************************************************)
(* controller = cgroup; *)
let namespace_instance = key_value name address
(* namespace { .... } *)
let namespace = brack_entry "namespace" namespace_instance
let lns = ( comment | empty | mount_data | group_data | namespace )*
let xfm = transform lns (incl "/etc/cgconfig.conf")
|