@@ -140,24 +140,19 @@ func newProperty(cmd *cobra.Command, args []string) {
140140}
141141
142142func 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
163158func 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+
175180func 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
197197func parseValue (argument string ) interface {} {
0 commit comments