[augeas-devel] [PATCH] Add export and unset to shellvars.aug. I have seen them in several

Raphael Pinson raphink at gmail.com
Wed Apr 8 13:43:20 UTC 2009


Note: It would be great to use "unset" as a flag the way "export" is
used, but that would require to have a non-ambiguous put based on the
parsed values with :

kv = [ export? . key key_re . eq . (simple_value | array) . eol ]
   | [ [ key "unset" . Util.del_ws_spc ] . store key_re . eol ]
---
 lenses/shellvars.aug            |    9 ++++++---
 lenses/tests/test_shellvars.aug |   11 ++++++-----
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/lenses/shellvars.aug b/lenses/shellvars.aug
index 22a35ab..841669e 100644
--- a/lenses/shellvars.aug
+++ b/lenses/shellvars.aug
@@ -5,7 +5,7 @@ module Shellvars =
 
   let eol = Util.eol
 
-  let key_re = /[A-Za-z0-9_]+(\[[0-9]+\])?/
+  let key_re = /[A-Za-z0-9_]+(\[[0-9]+\])?/ - "unset" - "export"
   let eq = Util.del_str "="
   let comment = [ del /(#.*)?[ \t]*\n/ "# \n" ]
 
@@ -29,7 +29,10 @@ module Shellvars =
     let empty_array = /\([ \t]*\)/ in
    store (char* | dquot | squot | empty_array)
 
-  let kv = [ key key_re . eq . (simple_value | array) . eol ]
+  let export = [ key "export" . Util.del_ws_spc ]
+  let kv = [ export? . key key_re . eq . (simple_value | array) . eol ]
+
+  let unset = [ key "unset" . Util.del_ws_spc . store key_re . eol ]
 
   let source = 
     [ 
@@ -37,7 +40,7 @@ module Shellvars =
       Util.del_ws_spc . store /[^= \t\n]+/ . eol 
     ]
 
-  let lns = (comment | source | kv) *
+  let lns = (comment | source | kv | unset) *
 
   let sc_incl (n:string) = (incl ("/etc/sysconfig/" . n))
   let filter_sysconfig = 
diff --git a/lenses/tests/test_shellvars.aug b/lenses/tests/test_shellvars.aug
index b0673e6..b27f160 100644
--- a/lenses/tests/test_shellvars.aug
+++ b/lenses/tests/test_shellvars.aug
@@ -6,11 +6,11 @@ DEVICE=eth0
 BOOTPROTO=static
 BROADCAST=172.31.0.255
 HWADDR=ab:cd:ef:12:34:56
-IPADDR=172.31.0.31
+export IPADDR=172.31.0.31
 #DHCP_HOSTNAME=host.example.com
 NETMASK=255.255.255.0
 NETWORK=172.31.0.0
-ONBOOT=yes
+unset ONBOOT
 "
   let empty_val = "EMPTY=\nDEVICE=eth0\n"
 
@@ -22,11 +22,12 @@ ONBOOT=yes
     { "BOOTPROTO" = "static" }
     { "BROADCAST" = "172.31.0.255" }
     { "HWADDR" = "ab:cd:ef:12:34:56" }
-    { "IPADDR" = "172.31.0.31" }
+    { "IPADDR" = "172.31.0.31"
+        { "export" } }
     { }
     { "NETMASK" = "255.255.255.0" }
     { "NETWORK" = "172.31.0.0" }
-    { "ONBOOT" = "yes" }
+    { "unset"   = "ONBOOT" }
 
   test Shellvars.lns put eth_static after
       set "BOOTPROTO" "dhcp" ;
@@ -39,7 +40,7 @@ DEVICE=eth0
 BOOTPROTO=dhcp
 HWADDR=ab:cd:ef:12:34:56
 #DHCP_HOSTNAME=host.example.com
-ONBOOT=yes
+unset ONBOOT
 "
   test Shellvars.lns get empty_val =
     { "EMPTY" = "" } { "DEVICE" = "eth0" }
-- 
1.5.6.3




More information about the augeas-devel mailing list