[augeas-devel] [PATCH] Add limits lens and test

free at 64studio.com free at 64studio.com
Fri Dec 26 15:58:35 UTC 2008


commit 62230e3e9c97a8b4a7d793a1e20b2e13f9d9392f
Author: Free Ekanayaka <free at 64studio.com>
Date:   Fri Dec 26 15:33:28 2008 +0000

    Add limits lens and test

diff --git a/lenses/limits.aug b/lenses/limits.aug
new file mode 100644
index 0000000..5b2705c
--- /dev/null
+++ b/lenses/limits.aug
@@ -0,0 +1,71 @@
+(* Limits module for Augeas
+ Author: Free Ekanayaka <free at 64studio.com>
+
+ Reference: /etc/security/limits.conf
+
+*)
+
+module Limits =
+
+   autoload xfm
+
+(************************************************************************
+ *                           USEFUL PRIMITIVES
+ *************************************************************************)
+
+let eol        = Util.eol
+let spc        = Util.del_ws_spc
+let comment    = Util.comment
+let empty      = Util.empty
+
+let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
+
+(************************************************************************
+ *                               ENTRIES
+ *************************************************************************)
+
+let domain     = key /[%@]?[A-Za-z0-9_.-]+|\*/
+
+let type_re    = "soft"
+               | "hard"
+               | "-"
+let type       = [ label "type" . store type_re ]
+
+let item_re    = "core"
+               | "data"
+               | "fsize"
+               | "memlock"
+               | "nofile"
+               | "rss"
+               | "stack"
+               | "cpu"
+               | "nproc"
+               | "as"
+               | "maxlogins"
+               | "maxsyslogins"
+               | "priority"
+               | "locks"
+               | "sigpending"
+               | "msgqueue"
+               | "nice"
+               | "rtprio"
+               | "chroot"
+let item       = [ label "item" . store item_re ]
+
+let value      = [ label "value" . store /[A-Za-z0-9_.\/-]+/ ]
+let entry      = [ domain . spc
+                 . type   . spc
+                 . item   . spc
+                 . value  . eol ]
+
+(************************************************************************
+ *                                LENS
+ *************************************************************************)
+
+let lns        = (comment|empty|entry) *
+
+let filter
+               = incl "/etc/security/limits.conf"
+               . Util.stdexcl
+
+let xfm        = transform lns filter
diff --git a/lenses/tests/test_limits.aug b/lenses/tests/test_limits.aug
new file mode 100644
index 0000000..d886c94
--- /dev/null
+++ b/lenses/tests/test_limits.aug
@@ -0,0 +1,20 @@
+module Test_limits =
+
+let conf = "@audio - rtprio 99
+ftp hard nproc /ftp
+* soft core 0
+"
+
+test Limits.lns get conf =
+   { "@audio"
+     { "type"  = "-" }
+     { "item"  = "rtprio" }
+     { "value" = "99" } }
+   { "ftp"
+     { "type" = "hard" }
+     { "item" = "nproc" }
+     { "value" = "/ftp" } }
+   { "*"
+     { "type" = "soft" }
+     { "item" = "core" }
+     { "value" = "0" } }




More information about the augeas-devel mailing list