[augeas-devel] [PATCH 4/4] new lens for Memcached.

Marc Fournier marc.fournier at camptocamp.com
Mon Oct 8 07:01:27 UTC 2012


---
 lenses/memcached.aug            |   33 ++++++++++++++++++++++++++++++
 lenses/tests/test_memcached.aug |   43 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 lenses/memcached.aug
 create mode 100644 lenses/tests/test_memcached.aug

diff --git a/lenses/memcached.aug b/lenses/memcached.aug
new file mode 100644
index 0000000..db0b29b
--- /dev/null
+++ b/lenses/memcached.aug
@@ -0,0 +1,33 @@
+(*
+Module: Memcached
+  Parses Memcached's configuration files
+
+Author: Marc Fournier <marc.fournier at camptocamp.com>
+
+About: License
+  This file is licensed under the LGPL v2+, like the rest of Augeas.
+*)
+
+module Memcached =
+autoload xfm
+
+let comment     = Util.comment
+let comment_eol = Util.comment_generic /[#][ \t]*/ "# "
+let option      = /[a-zA-Z]/
+let val         = /[^# \n\t]+/
+let empty       = Util.empty
+let eol         = Util.del_str "\n"
+
+let entry       = [ Util.del_str "-" . key option
+                . ( Util.del_ws_spc . (store val) )?
+                . del /[ \t]*/ "" . (eol|comment_eol) ]
+
+let logfile     = Build.key_value_line_comment
+                  "logfile" Sep.space (store val) comment
+
+let lns         = ( entry | logfile | comment | empty )*
+
+let filter      = incl "/etc/memcached.conf"
+                . incl "/etc/memcachedb.conf"
+
+let xfm         = transform lns filter
diff --git a/lenses/tests/test_memcached.aug b/lenses/tests/test_memcached.aug
new file mode 100644
index 0000000..7aecb82
--- /dev/null
+++ b/lenses/tests/test_memcached.aug
@@ -0,0 +1,43 @@
+(*
+Module: Test_Memcached
+  Provides unit tests for the <Memcached> lens.
+*)
+
+module Test_Memcached =
+
+let conf = "# memcached default config file
+
+# Run memcached as a daemon. This command is implied, and is not needed for the
+# daemon to run. See the README.Debian that comes with this package for more
+# information.
+-d
+-l 127.0.0.1
+
+# Log memcached's output to /var/log/memcached
+logfile /var/log/memcached.log
+
+# Default connection port is 11211
+-p 11211    
+-m    64    #    Start with a cap of 64 megs of memory.
+-M
+"
+
+test Memcached.lns get conf =
+  { "#comment" = "memcached default config file" }
+  { }
+  { "#comment" = "Run memcached as a daemon. This command is implied, and is not needed for the" }
+  { "#comment" = "daemon to run. See the README.Debian that comes with this package for more" }
+  { "#comment" = "information." }
+  { "d" }
+  { "l" = "127.0.0.1" }
+  { }
+  { "#comment" = "Log memcached's output to /var/log/memcached" }
+  { "logfile"  = "/var/log/memcached.log" }
+  { }
+  { "#comment" = "Default connection port is 11211" }
+  { "p" = "11211" }
+  { "m" = "64"
+    { "#comment" = "Start with a cap of 64 megs of memory." }
+  }
+  { "M" }
+
-- 
1.7.10.4




More information about the augeas-devel mailing list