I'm 99% certain these are unavoidable, due to the way diff
works. This tripped me up in the past, and drdrang was able to figure out what was going on:
The answer lies in how
diff
works. Whendiff
finds a difference between the two files, its exit code is 1. Nonzero exit codes typically indicate an error, so when Keyboard Maestro sees that exit code, it bails out. If you look through theEngine.log
file, you'll see something likeTask failed with status 1
which is true but not very helpful if you don't knowdiff
's exit codes.The workaround is to click on the gear icon in the upper left corner of your Execute Shell Script action and change the settings on "Failure Aborts Macro" and "Notify on Failure" from ✓ to ×. That should get you the output you expect.
So that's what I have to do whenever I use diff
(and a couple other commands, as it turns out). But I don't know of any way to block the log entries for these things that aren't really errors.
-rob.