@@ -162,7 +162,7 @@ func newYaml(args []string) interface{} {
162
162
163
163
parsedData := make (yaml.MapSlice , 0 )
164
164
165
- return updateParsedData (parsedData , writeCommands )
165
+ return updateParsedData (parsedData , writeCommands , "" )
166
166
}
167
167
168
168
func writeProperty (cmd * cobra.Command , args []string ) {
@@ -177,18 +177,26 @@ func writeProperty(cmd *cobra.Command, args []string) {
177
177
}
178
178
}
179
179
180
- func updateParsedData (parsedData yaml.MapSlice , writeCommands yaml.MapSlice ) yaml.MapSlice {
180
+ func updateParsedData (parsedData yaml.MapSlice , writeCommands yaml.MapSlice , prependCommand string ) interface {} {
181
+ var prefix = ""
182
+ if prependCommand != "" {
183
+ prefix = prependCommand + "."
184
+ }
181
185
for _ , entry := range writeCommands {
182
- path := entry .Key
186
+ path := prefix + entry .Key .( string )
183
187
value := entry .Value
184
- var paths = parsePath (path .( string ) )
188
+ var paths = parsePath (path )
185
189
parsedData = writeMap (parsedData , paths , value )
186
190
}
191
+ if prependCommand != "" {
192
+ return readMap (parsedData , prependCommand , make ([]string , 0 ))
193
+ }
187
194
return parsedData
188
195
}
189
196
190
197
func updateYaml (args []string ) interface {} {
191
198
var writeCommands yaml.MapSlice
199
+ var prependCommand = ""
192
200
if writeScript != "" {
193
201
readDataOrDie (writeScript , & writeCommands , false )
194
202
} else if len (args ) < 3 {
@@ -199,9 +207,16 @@ func updateYaml(args []string) interface{} {
199
207
}
200
208
201
209
var parsedData yaml.MapSlice
202
- readDataOrDie (args [0 ], & parsedData , inputJSON )
210
+ err := readData (args [0 ], & parsedData , inputJSON )
211
+ if err != nil {
212
+ var generalData interface {}
213
+ readDataOrDie (args [0 ], & generalData , inputJSON )
214
+ item := yaml.MapItem {Key : "thing" , Value : generalData }
215
+ parsedData = yaml.MapSlice {item }
216
+ prependCommand = "thing"
217
+ }
203
218
204
- return updateParsedData (parsedData , writeCommands )
219
+ return updateParsedData (parsedData , writeCommands , prependCommand )
205
220
}
206
221
207
222
func parseValue (argument string ) interface {} {
0 commit comments