[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