Blame lenses/limits.aug

Packit Service a2ae7a
(* Limits module for Augeas
Packit Service a2ae7a
 Author: Free Ekanayaka <free@64studio.com>
Packit Service a2ae7a
Packit Service a2ae7a
 Reference: /etc/security/limits.conf
Packit Service a2ae7a
Packit Service a2ae7a
*)
Packit Service a2ae7a
Packit Service a2ae7a
module Limits =
Packit Service a2ae7a
Packit Service a2ae7a
   autoload xfm
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 *                           USEFUL PRIMITIVES
Packit Service a2ae7a
 *************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
let eol        = Util.eol
Packit Service a2ae7a
let comment_or_eol = Util.comment_or_eol
Packit Service a2ae7a
let spc        = Util.del_ws_spc
Packit Service a2ae7a
let comment    = Util.comment
Packit Service a2ae7a
let empty      = Util.empty
Packit Service a2ae7a
Packit Service a2ae7a
let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 *                               ENTRIES
Packit Service a2ae7a
 *************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
let domain     = label "domain" . store /[%@]?[A-Za-z0-9_.-]+|\*/
Packit Service a2ae7a
Packit Service a2ae7a
let type_re    = "soft"
Packit Service a2ae7a
               | "hard"
Packit Service a2ae7a
               | "-"
Packit Service a2ae7a
let type       = [ label "type" . store type_re ]
Packit Service a2ae7a
Packit Service a2ae7a
let item_re    = "core"
Packit Service a2ae7a
               | "data"
Packit Service a2ae7a
               | "fsize"
Packit Service a2ae7a
               | "memlock"
Packit Service a2ae7a
               | "nofile"
Packit Service a2ae7a
               | "rss"
Packit Service a2ae7a
               | "stack"
Packit Service a2ae7a
               | "cpu"
Packit Service a2ae7a
               | "nproc"
Packit Service a2ae7a
               | "as"
Packit Service a2ae7a
               | "maxlogins"
Packit Service a2ae7a
               | "maxsyslogins"
Packit Service a2ae7a
               | "priority"
Packit Service a2ae7a
               | "locks"
Packit Service a2ae7a
               | "sigpending"
Packit Service a2ae7a
               | "msgqueue"
Packit Service a2ae7a
               | "nice"
Packit Service a2ae7a
               | "rtprio"
Packit Service a2ae7a
               | "chroot"
Packit Service a2ae7a
let item       = [ label "item" . store item_re ]
Packit Service a2ae7a
Packit Service a2ae7a
let value      = [ label "value" . store /[A-Za-z0-9_.\/-]+/ ]
Packit Service a2ae7a
let entry      = [ domain . spc
Packit Service a2ae7a
                 . type   . spc
Packit Service a2ae7a
                 . item   . spc
Packit Service a2ae7a
                 . value  . comment_or_eol ]
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 *                                LENS
Packit Service a2ae7a
 *************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
let lns        = (comment|empty|entry) *
Packit Service a2ae7a
Packit Service a2ae7a
let filter     = incl "/etc/security/limits.conf"
Packit Service a2ae7a
               . incl "/etc/security/limits.d/*.conf"
Packit Service a2ae7a
Packit Service a2ae7a
let xfm        = transform lns filter