[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