Skip to content

Commit c2000a4

Browse files
author
Mike Farah
committed
Fixed writeCommands to maintain the same execution as was read in
1 parent 08ba008 commit c2000a4

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

yaml.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -140,24 +140,19 @@ func newProperty(cmd *cobra.Command, args []string) {
140140
}
141141

142142
func newYaml(args []string) interface{} {
143-
var writeCommands map[string]interface{}
143+
var writeCommands yaml.MapSlice
144144
if writeScript != "" {
145145
readData(writeScript, &writeCommands, false)
146146
} else if len(args) < 2 {
147147
die("Must provide <path_to_update> <value>")
148148
} else {
149-
writeCommands = make(map[string]interface{})
150-
writeCommands[args[0]] = parseValue(args[1])
149+
writeCommands = make(yaml.MapSlice, 1)
150+
writeCommands[0] = yaml.MapItem{Key: args[0], Value: parseValue(args[1])}
151151
}
152152

153153
parsedData := make(yaml.MapSlice, 0)
154154

155-
for path, value := range writeCommands {
156-
var paths = parsePath(path)
157-
parsedData = writeMap(parsedData, paths, value)
158-
}
159-
160-
return parsedData
155+
return updateParsedData(parsedData, writeCommands)
161156
}
162157

163158
func writeProperty(cmd *cobra.Command, args []string) {
@@ -172,26 +167,31 @@ func writeProperty(cmd *cobra.Command, args []string) {
172167
}
173168
}
174169

170+
func updateParsedData(parsedData yaml.MapSlice, writeCommands yaml.MapSlice) yaml.MapSlice {
171+
for _, entry := range writeCommands {
172+
path := entry.Key
173+
value := entry.Value
174+
var paths = parsePath(path.(string))
175+
parsedData = writeMap(parsedData, paths, value)
176+
}
177+
return parsedData
178+
}
179+
175180
func updateYaml(args []string) interface{} {
176-
var writeCommands map[string]interface{}
181+
var writeCommands yaml.MapSlice
177182
if writeScript != "" {
178183
readData(writeScript, &writeCommands, false)
179184
} else if len(args) < 3 {
180185
die("Must provide <filename> <path_to_update> <value>")
181186
} else {
182-
writeCommands = make(map[string]interface{})
183-
writeCommands[args[1]] = parseValue(args[2])
187+
writeCommands = make(yaml.MapSlice, 1)
188+
writeCommands[0] = yaml.MapItem{Key: args[1], Value: parseValue(args[2])}
184189
}
185190

186191
var parsedData yaml.MapSlice
187192
readData(args[0], &parsedData, inputJSON)
188193

189-
for path, value := range writeCommands {
190-
var paths = parsePath(path)
191-
parsedData = writeMap(parsedData, paths, value)
192-
}
193-
194-
return parsedData
194+
return updateParsedData(parsedData, writeCommands)
195195
}
196196

197197
func parseValue(argument string) interface{} {

0 commit comments

Comments
 (0)