[augeas-devel] [PATCH 5 of 7] Rewrite dpug.aug on new inifile.aug

Raphael Pinson raphink at gmail.com
Thu Aug 14 15:52:07 UTC 2008


# HG changeset patch
# User Raphael Pinson <raphink at gmail.com>
# Date 1218728966 -7200
# Node ID 2ede05e9f18a50a93ed49b6d47b63e0872fcf3cf
# Parent  b3d373af10fdb0150400ec084c4d51b60031ef65
Rewrite dpug.aug on new inifile.aug

diff -r b3d373af10fd -r 2ede05e9f18a lenses/dput.aug
--- a/lenses/dput.aug	Thu Aug 14 17:49:12 2008 +0200
+++ b/lenses/dput.aug	Thu Aug 14 17:49:26 2008 +0200
@@ -1,38 +1,67 @@
-(* Dput module for Augeas                     *)
-(* Author: Raphael Pinson <raphink at gmail.com> *)
-(*                                            *)
+(* Dput module for Augeas 
+   Author: Raphael Pinson <raphink at gmail.com> 
+
+
+   Reference: dput uses Python's ConfigParser:
+     http://docs.python.org/lib/module-ConfigParser.html
+*)
 
 
 module Dput =
   autoload xfm
 
-    let setting = "allow_non-us_software"
-                | "allow_unsigned_uploads"
-                | "check_version"
-                | "default_host_main"
-                | "default_host_non-us"
-                | "fqdn"
-                | "hash"
-                | "incoming"
-                | "login"
-                | "method"
-                | "passive_ftp"
-                | "post_upload_command"
-                | "pre_upload_command"
-                | "progress_indicator"
-                | "run_dinstall"
-                | "run_lintian"
-                | "scp_compress"
-		| "ssh_config_options"
-	
-    let entry = IniFile.entry setting
 
-    let record = IniFile.record "target" entry
+(************************************************************************
+ * INI File settings
+ *************************************************************************)
+let comment  = IniFile.comment IniFile.comment_re IniFile.comment_default
 
-    let lns = IniFile.lns record
+let sep      = IniFile.sep IniFile.sep_re IniFile.sep_default
 
-    let filter = (incl "/etc/dput.cf")
-        . (incl "~/.dput.cf")
-        . Util.stdexcl
 
-    let xfm = transform lns filter
+let setting = "allow_non-us_software"
+            | "allow_unsigned_uploads"
+            | "check_version"
+            | "default_host_main"
+            | "default_host_non-us"
+            | "fqdn"
+            | "hash"
+            | "incoming"
+            | "login"
+            | "method"
+            | "passive_ftp"
+            | "post_upload_command"
+            | "pre_upload_command"
+            | "progress_indicator"
+            | "run_dinstall"
+            | "run_lintian"
+            | "scp_compress"
+            | "ssh_config_options"
+
+(************************************************************************
+ * "name: value" entries, with continuations in the style of RFC 822;
+ * "name=value" is also accepted
+ * leading whitespace is removed from values
+ *************************************************************************)
+let entry = IniFile.entry setting sep comment 
+
+
+(************************************************************************
+ * sections, led by a "[section]" header
+ * We can't use titles as node names here since they could contain "/"
+ * We remove #comment from possible keys
+ * since it is used as label for comments
+ * We also remove / as first character
+ * because augeas doesn't like '/' keys (although it is legal in INI Files)
+ *************************************************************************)
+let title   = IniFile.title_label "target" IniFile.record_label_re
+let record  = IniFile.record title entry 
+
+let lns    = IniFile.lns record comment
+
+let filter = (incl "/etc/dput.cf")
+           . (incl "~/.dput.cf")
+           . Util.stdexcl
+
+let xfm = transform lns filter
+




More information about the augeas-devel mailing list