3
0

Handle special \n string case for YAML exports

This commit is contained in:
Tomaž Jerman
2021-07-27 14:45:27 +02:00
committed by Denis Arh
parent 0bfa57acd2
commit f81c21c05d
2 changed files with 11 additions and 4 deletions

View File

@@ -153,6 +153,7 @@ func (c *composeModule) MarshalYAML() (interface{}, error) {
}
func (c *composeModuleField) MarshalYAML() (interface{}, error) {
var err error
auxOpt := c.res.Options
if auxOpt == nil {
@@ -179,9 +180,11 @@ func (c *composeModuleField) MarshalYAML() (interface{}, error) {
delete(auxOpt, "roleID")
}
if _, has := auxOpt["multiDelimiter"]; has {
if auxOpt["multiDelimiter"] == "\n" {
auxOpt["multiDelimiter"] = "\\n"
nopt, _ := makeMap()
for k, v := range auxOpt {
nopt, err = addMap(nopt, k, v)
if err != nil {
return nil, err
}
}
@@ -190,7 +193,7 @@ func (c *composeModuleField) MarshalYAML() (interface{}, error) {
"name", c.res.Name,
"label", c.res.Label,
"options", auxOpt,
"options", nopt,
"private", c.res.Private,
"required", c.res.Required,

View File

@@ -202,6 +202,10 @@ func addMap(n *yaml.Node, pp ...interface{}) (*yaml.Node, error) {
}
vn, err = encodeNode(v)
if v == "\n" {
vn.Style = yaml.DoubleQuotedStyle
}
default:
vn, err = encodeNode(vRaw)
}