I need to process a file of certain types with external command line program accepting single argument (filename) and then use file modified by this program either open modified file or accept output of command line program as data source for file.
Any way to do this?
If you just want this to work when you open the file with C-x C-f, then you can probably just attach your behaviour to
find-file, but deeper down I believeinsert-file-contentsis what eventually reads files in.A cursory look doesn’t seem to show any appropriate hook, so you could look at doing this with before advice.
You might like to elaborate on your requirements, in case you don’t actually need to clobber the original file? (which I think is a horrendous idea, frankly; I certainly wouldn’t use code like this!)
For example, you could read in the original file, process it within the buffer (maybe using shell-command-on-region with the replace flag), and set the buffer as unmodified. That way you are only likely to save the changes made by the shell command if you make other edits to the file, and the mere act of loading the file into an editor hasn’t actually modified it.
In any case, I trust you’ll implement sensible backup processes into your code, and will be plenty paranoid when testing!