[augeas-devel] augeas: master - Grub: parse individual arguments for serial command

David Lutterkort lutter at fedoraproject.org
Fri Apr 17 22:07:20 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=4aa11b03b26808e5d35c06c5a98f11da59f04963
Commit:        4aa11b03b26808e5d35c06c5a98f11da59f04963
Parent:        eff826b0fc8c67db5ef0f7da17a5a9d55c3b827f
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Thu Apr 9 15:28:44 2009 -0700
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Mon Apr 13 19:25:58 2009 -0700

Grub: parse individual arguments for serial command

---
 lenses/grub.aug            |   10 ++++++++--
 lenses/tests/test_grub.aug |    9 +++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/lenses/grub.aug b/lenses/grub.aug
index 8015a31..9faabf4 100644
--- a/lenses/grub.aug
+++ b/lenses/grub.aug
@@ -12,7 +12,8 @@ module Grub =
     let opt_ws = Util.del_opt_ws ""
     let dels (s:string) = Util.del_str s
     let eq = dels "="
-    let switch (n:string) = dels ("--" . n) . label n
+    let switch (n:regexp) = dels "--" . key n
+    let switch_arg (n:regexp) = switch n . eq . store Rx.no_spaces
     let value_sep (dflt:string) = del /[ \t]*[ \t=][ \t]*/ dflt
 
     let command (kw:string) (indent:string) =
@@ -44,12 +45,17 @@ module Grub =
         (spc . [ label "highlight" . color_spec ])? .
         eol ]
 
+    let serial =
+      [ command "serial" "" .
+        [ spc . switch_arg /unit|port|speed|word|parity|stop|device/ ]* .
+        eol ]
+
     let menu_setting = kw_menu_arg "default"
                      | kw_menu_arg "fallback"
                      | kw_pres "hiddenmenu"
                      | kw_menu_arg "timeout"
                      | kw_menu_arg "splashimage"
-                     | kw_menu_arg "serial"
+                     | serial
                      | kw_menu_arg "terminal"
                      | password_arg
                      | color
diff --git a/lenses/tests/test_grub.aug b/lenses/tests/test_grub.aug
index e104f35..7f26035 100644
--- a/lenses/tests/test_grub.aug
+++ b/lenses/tests/test_grub.aug
@@ -114,6 +114,15 @@ initrd\t\t/boot/initrd.img-2.6.18-6-vserver-686
       { "initrd" = "/boot/initrd.img-2.6.18-6-vserver-686" }
       { "savedefault" } }
 
+  test Grub.lns get
+      "serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1\n"
+    =
+    { "serial"
+        { "unit" = "0" }
+        { "speed" = "9600" }
+        { "word" = "8" }
+        { "parity" = "no" }
+        { "stop" = "1" } }
 
 (* Local Variables: *)
 (* mode: caml       *)




More information about the augeas-devel mailing list