[netcf-devel] [PATCH 7/7] Let the lens handle single quotes instead of the XSLT and XSLT extensions

Jonas Eriksson jonas.j.eriksson at ericsson.com
Thu Jul 23 12:37:08 UTC 2009


This is the second in a two-stage commit where we move from
the standard shellvars-lens to one that strips the single
quotes before and after strings.

data/lenses/ifcfg.aug: Strip single (and double) quotes and
  re-insert them after save.

data/xml/util-get.xsl: Remove insertion of single quotes in XSLT

tests/initscripts/bond*.xml: Remove single quotes from
  intermediate xml
---
 data/lenses/ifcfg.aug          |   11 ++++++-----
 data/xml/util-get.xsl          |    2 --
 tests/initscripts/bond-arp.xml |    2 +-
 tests/initscripts/bond.xml     |    2 +-
 4 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/data/lenses/ifcfg.aug b/data/lenses/ifcfg.aug
index c1a82dd..22ebce9 100644
--- a/data/lenses/ifcfg.aug
+++ b/data/lenses/ifcfg.aug
@@ -11,15 +11,16 @@ module Ifcfg =
   let empty   = Util.empty
 
   let char  = /[^() '"\t\n]|\\\\"/
-  let dquot = /"([^"\\\n]|\\\\.)*"/                    (* " Emacs, relax *)
-  let squot = /'[^'\n]*'/
-  let bquot = /`[^`\n]*`/
+  let dquotc = /([^"\\\n]|\\\\.)*/                     (* " Emacs, relax *)
+  let squotc = /[^'\n]*/
+  let dquots = del "\"" "\"" . store dquotc . del "\"" "\""
+  let squots = del "'" "'" . store squotc . del "'" "'"
 
   (* Array values of the form '(val1 val2 val3)'. We do not handle empty *)
   (* arrays here because of typechecking headaches. Instead, they are    *)
   (* treated as a simple value                                           *)
   let array =
-    let array_value = store (char+ | dquot) in
+    let array_value = dquots | store char+ in
     del "(" "(" . counter "values" .
       [ seq "values" . array_value ] .
       [ del /[ \t]+/ " " . seq "values" . array_value ] *
@@ -29,7 +30,7 @@ module Ifcfg =
   (* but fairly close.                                                *)
   let simple_value =
     let empty_array = /\([ \t]*\)/ in
-      store (char* | dquot | squot | bquot | empty_array)
+   squots | dquots | store char* | store empty_array
 
   let export = [ key "export" . Util.del_ws_spc ]
   let kv = [ export? . key key_re . eq . (simple_value | array) . eol ]
diff --git a/data/xml/util-get.xsl b/data/xml/util-get.xsl
index f3984ee..0a1405d 100644
--- a/data/xml/util-get.xsl
+++ b/data/xml/util-get.xsl
@@ -3,7 +3,6 @@
                 version="1.0">
 
   <xsl:template name="bonding-opts">
-    <xsl:text>'</xsl:text>
     <xsl:if test="bond/@mode">mode=<xsl:value-of select='bond/@mode'/></xsl:if>
     <xsl:if test="bond/@mode = 'active-backup'"> primary=<xsl:value-of select='bond/interface[1]/@name'/></xsl:if>
     <xsl:if test="bond/miimon">
@@ -21,7 +20,6 @@
       <xsl:text> arp_ip_target=</xsl:text><xsl:value-of select="bond/arpmon/@target"/>
       <xsl:if test="bond/arpmon/@validate"><xsl:text> arp_validate=</xsl:text><xsl:value-of select="bond/arpmon/@validate"/></xsl:if>
     </xsl:if>
-    <xsl:text>'</xsl:text>
   </xsl:template>
 
 </xsl:stylesheet>
diff --git a/tests/initscripts/bond-arp.xml b/tests/initscripts/bond-arp.xml
index 6a53d09..884cb84 100644
--- a/tests/initscripts/bond-arp.xml
+++ b/tests/initscripts/bond-arp.xml
@@ -7,7 +7,7 @@
     <node label="IPADDR" value="192.168.50.7"/>
     <node label="NETMASK" value="255.255.255.0"/>
     <node label="GATEWAY" value="192.168.50.1"/>
-    <node label="BONDING_OPTS" value="'mode=active-backup primary=eth1 arp_interval=100 arp_ip_target=192.168.50.1 arp_validate=active'"/>
+    <node label="BONDING_OPTS" value="mode=active-backup primary=eth1 arp_interval=100 arp_ip_target=192.168.50.1 arp_validate=active"/>
   </tree>
   <tree path="/files/etc/sysconfig/network-scripts/ifcfg-eth1">
     <node label="DEVICE" value="eth1"/>
diff --git a/tests/initscripts/bond.xml b/tests/initscripts/bond.xml
index d97542d..4a7e9bf 100644
--- a/tests/initscripts/bond.xml
+++ b/tests/initscripts/bond.xml
@@ -11,7 +11,7 @@
     <node label="IPADDR" value="192.168.50.7"/>
     <node label="NETMASK" value="255.255.255.0"/>
     <node label="GATEWAY" value="192.168.50.1"/>
-    <node label="BONDING_OPTS" value="'mode=active-backup primary=eth1 miimon=100 updelay=10 use_carrier=0'"/>
+    <node label="BONDING_OPTS" value="mode=active-backup primary=eth1 miimon=100 updelay=10 use_carrier=0"/>
   </tree>
   <tree  path="/files/etc/sysconfig/network-scripts/ifcfg-eth1">
     <node label="DEVICE" value="eth1"/>
-- 
1.6.2



More information about the netcf-devel mailing list