[augeas-devel] Comments after lines
Jonas Eriksson
jonas.j.eriksson at ericsson.com
Thu May 7 07:46:05 UTC 2009
Hello
I have been having some trouble with comments when parsing
modprobe.d-files. To exemplify, ordinary comments work as
intended, but end-of-line-comments breaks the lens, so to speak:
===== modprobe.d/blacklist:
# this works fine
blacklist brokenmodule # this does not work
=====
I propose that either the definition of eol in util.aug is
changed thusly:
=====
diff --git a/lenses/util.aug b/lenses/util.aug
index 0dced14..ee2845c 100644
--- a/lenses/util.aug
+++ b/lenses/util.aug
@@ -51,7 +51,7 @@ Variable: del_opt_ws
Variable: eol
Delete end of line, including optional trailing whitespace
*)
- let eol = del /[ \t]*\n/ "\n"
+ let eol = del /[ \t]*(#[^\n]*\n|\n)/ "\n"
(*
Variable: indent
=====
..or that a ceol is defined as the redefined eol, and that this
is used instead of eol in modprobe.aug and shellvars.aug (it is
probably fitting for more .aug-files, such as hosts, grub, cron,
exports, fstab, interfaces, etc. Someone who is more certain at
this will have to acknowledge):
=====
diff --git a/lenses/modprobe.aug b/lenses/modprobe.aug
index d61b7a0..5fb3de6 100644
--- a/lenses/modprobe.aug
+++ b/lenses/modprobe.aug
@@ -7,7 +7,7 @@ autoload xfm
let comment = Util.comment
let empty = Util.empty
-let eol = Util.eol
+let eol = Util.ceol
(* modprobe.conf allows continuing a line by ending it with backslash +
newline; the backslash + newline token is suppressed We handle an
diff --git a/lenses/shellvars.aug b/lenses/shellvars.aug
index d3e4bbe..663e581 100644
--- a/lenses/shellvars.aug
+++ b/lenses/shellvars.aug
@@ -3,7 +3,7 @@
module Shellvars =
autoload xfm
- let eol = Util.eol
+ let eol = Util.ceol
let key_re = /[A-Za-z0-9_]+(\[[0-9]+\])?/ - "unset" - "export"
let eq = Util.del_str "="
diff --git a/lenses/util.aug b/lenses/util.aug
index 0dced14..20f4919 100644
--- a/lenses/util.aug
+++ b/lenses/util.aug
@@ -54,6 +54,12 @@ Variable: eol
let eol = del /[ \t]*\n/ "\n"
(*
+Variable: ceol
+ Delete end of line, including optional trailing whitespace and comment
+*)
+ let ceol = del /[ \t]*(#[^\n]*\n|\n)/ "\n"
+
+(*
Variable: indent
Delete indentation, including leading whitespace
*)
=====
Best regards,
Jonas Eriksson
--
Jonas Eriksson
Consultant at AS/EAB/FLJ/IL
Phone: +46 8 58086281
Combitech AB
Älvsjö, Sweden
More information about the augeas-devel
mailing list