# File lib/puppet/provider/augeas/augeas.rb, line 320
320:   def do_execute_changes
321:     commands = parse_commands(resource[:changes])
322:     commands.each do |cmd_array|
323:       fail("invalid command #{cmd_array.join[" "]}") if cmd_array.length < 2
324:       command = cmd_array[0]
325:       cmd_array.shift
326:       begin
327:         case command
328:           when "set"
329:             debug("sending command '#{command}' with params #{cmd_array.inspect}")
330:             rv = aug.set(cmd_array[0], cmd_array[1])
331:             fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv)
332:           when "rm", "remove"
333:             debug("sending command '#{command}' with params #{cmd_array.inspect}")
334:             rv = aug.rm(cmd_array[0])
335:             fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1)
336:           when "clear"
337:             debug("sending command '#{command}' with params #{cmd_array.inspect}")
338:             rv = aug.clear(cmd_array[0])
339:             fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv)
340:           when "insert", "ins"
341:             label = cmd_array[0]
342:             where = cmd_array[1]
343:             path = cmd_array[2]
344:             case where
345:               when "before"; before = true
346:               when "after"; before = false
347:               else fail("Invalid value '#{where}' for where param")
348:             end
349:             debug("sending command '#{command}' with params #{[label, where, path].inspect}")
350:             rv = aug.insert(path, label, before)
351:             fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1)
352:           else fail("Command '#{command}' is not supported")
353:         end
354:       rescue SystemExit,NoMemoryError
355:         raise
356:       rescue Exception => e
357:         fail("Error sending command '#{command}' with params #{cmd_array.inspect}/#{e.message}")
358:       end
359:     end
360:   end