Permalink
Browse files

Add a lens for logwatch.

  • Loading branch information...
1 parent 3c1a427 commit b77ba3f0cac5e38cae7b578dff0f20fc90ac548f @flebel committed Sep 8, 2012
Showing with 62 additions and 0 deletions.
  1. +47 −0 lenses/logwatch.aug
  2. +15 −0 lenses/tests/test_logwatch.aug
View
@@ -0,0 +1,47 @@
+(* Logwatch module for Augeas
+ Author: Francois Lebel <francois@flebel.com>
+ Based on the dnsmasq lens written by Free Ekanayaka.
+
+ Reference: man logwatch (8)
+
+ "Format is one option per line, legal options are the same
+ as the long options legal on the command line. See
+ "logwatch.pl --help" or "man 8 logwatch" for details."
+
+*)
+
+module Logwatch =
+
+ autoload xfm
+
+(************************************************************************
+ * USEFUL PRIMITIVES
+ *************************************************************************)
+
+let eol = Util.eol
+let spc = Util.del_ws_spc
+let comment = Util.comment
+let empty = Util.empty
+
+let sep_eq = del / = / " = "
+let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
+
+(************************************************************************
+ * ENTRIES
+ *************************************************************************)
+
+let entry_re = /[A-Za-z0-9._-]+/
+let entry = [ key entry_re . sep_eq . sto_to_eol . eol ]
+
+(************************************************************************
+ * LENS
+ *************************************************************************)
+
+let lns = (comment|empty|entry) *
+
+let filter = incl "/etc/logwatch/conf/logwatch.conf"
+ . excl "#*#"
+ . excl ".*"
+ . Util.stdexcl
+
+let xfm = transform lns filter
@@ -0,0 +1,15 @@
+module Test_logwatch =
+
+let conf = "# Configuration file for logwatch.
+#
+#Mailto_host1 = user@example.com
+
+MailFrom = root@example.com
+"
+
+test Logwatch.lns get conf =
+ { "#comment" = "Configuration file for logwatch." }
+ {}
+ { "#comment" = "Mailto_host1 = user@example.com" }
+ {}
+ { "MailFrom" = "root@example.com" }

0 comments on commit b77ba3f

Please sign in to comment.