I'm having a bit of trouble this morning trying to run exiftool from within a shell. (I have done this successfully many times using a different development environment but am having an issue with Swift).
In Swift I run exiftool in a Process() that requires each command to be sent separately, as elements of a String array, like this:
["-G", "-s", "-u", "-makernotes:all", filePath]
However in this case the shell doesn't seem to recognize -makernotes:all as being a command.
If I enter the command array as:
["-G", "-s", "-u", "-makernotes", filePath]
It does work, however all I get is the first maker note tag (and there are, of course, many).
I realize that this is vague and certainly very specific to the environment I'm using but I was hoping that someone might be able suggest a reason why -makernotes:all isn't being recognized..
Further testing shows that if I remove the "-U" (or "-u") the "-makernotes:all" command does work, however I am only seeing five MakerNotes tags, rather than the dozens that I can see in Terminal when I enter the command including "-U".
To close the loop on this:
I was using an encoding that wasn't showing the data correctly. (UTF8 vs. ASCII)
When I decode using ASCII I can now see all of the tags I was expecting to find.