I've written a small crate that takes exactly this approach and provides a newtype wrapper around failure::Error
- exitfailure. Lets me just use a main() -> Result<(), ExitFailure>
and have the pretty printing taken care of.
It's nothing fancy but it saves me writing all that boilerplate for each project.