[augeas-devel] Sysctl and slashes

Raphaël Pinson raphink at gmail.com
Fri Nov 18 09:30:01 UTC 2011


Here is the proposed lens :

module Sysctl =
  autoload xfm

  let filter = incl "/etc/sysctl.conf"

  let eol = Util.eol
  let indent = Util.indent
  let key_re = /[A-Za-z0-9_-]+/
  let eq = del /[ \t]*=[ \t]*/ " = "
  let sep_kv = del /[\/.]/ "."
  let value_re = /[^ \t\n](.*[^ \t\n])?/

  let comment = [ indent . label "#comment" . del /[#;][ \t]*/ "# "
        . store /([^ \t\n].*[^ \t\n]|[^ \t\n])/ . eol ]

  let empty = Util.empty

  let fix_kv (lns:lens) = [ key key_re . sep_kv . lns ]
                        | [ key key_re . eq . store value_re . eol ]

  let rec kv_rec = fix_kv kv_rec


  (* Typecheck <fix_kv> *)
  let kv0 = [ key key_re ]
  let kv1 = fix_kv kv0

  let kv = indent . kv_rec

  let lns = (empty | comment | kv) *

  let xfm = transform lns filter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/augeas-devel/attachments/20111118/7d518ec0/attachment.htm>


More information about the augeas-devel mailing list