# File lib/puppet/provider/augeas/augeas.rb, line 308
308:     def do_execute_changes
309:         commands = parse_commands(resource[:changes])
310:         commands.each do |cmd_array|
311:             fail("invalid command #{cmd_array.join[" "]}") if cmd_array.length < 2
312:             command = cmd_array[0]
313:             cmd_array.shift
314:             begin
315:                 case command
316:                     when "set"
317:                         debug("sending command '#{command}' with params #{cmd_array.inspect}")
318:                         aug.set(cmd_array[0], cmd_array[1])
319:                     when "rm", "remove"
320:                         debug("sending command '#{command}' with params #{cmd_array.inspect}")
321:                         aug.rm(cmd_array[0])
322:                     when "clear"
323:                         debug("sending command '#{command}' with params #{cmd_array.inspect}")
324:                         @aug.clear(cmd_array[0])
325:                     when "insert", "ins"
326:                         label = cmd_array[0]
327:                         where = cmd_array[1]
328:                         path = cmd_array[2]
329:                         case where
330:                             when "before"; before = true
331:                             when "after"; before = false
332:                             else fail("Invalid value '#{where}' for where param")
333:                         end
334:                         debug("sending command '#{command}' with params #{[label, where, path].inspect}")
335:                         aug.insert(path, label, before)
336:                     else fail("Command '#{command}' is not supported")
337:                 end
338:             rescue Exception => e
339:                 fail("Error sending command '#{command}' with params #{cmd_array.inspect}/#{e.message}")
340:             end
341:         end
342:     end