I think the call to `readProcessWithExitCode` is probably fine.  Cabal does have a whole elaborate system for finding and calling registered programs, but it seems to me it might be overkill here... @dcoutts, any thoughts on that?