This makes use of zenity (of course) and the tee command, which I’m just learning – and liking!
If you’ve ever seen a screen of epubcheck errors, it’s a huge scrolling mash of stuff that just fills pages and pages of terminal screen. Sometimes – especially if I made an error that impacts all the files in a book – it scrolls so far that I can’t see all of them.
This fixes that.
You can’t just do a standard redirection – if there’s an error, it goes to standard error, not standard output. So this command is necessary:
java -jar /path/to/epubcheck-1.2.jar “$1” 2>&1
This is meant to be part of a bash script, so “$1” is the full path to the file in question. The funky bit there at the end will make standard error into standard output, so you can pipe it to something like zenity:
java -jar /path/to/epubcheck-1.2.jar “$1” 2>&1| zenity –text-info –width 530 –height 250
But that doesn’t help us if we want a log of our errors, right?
java -jar /path/to/epubcheck-1.2.jar “$1” 2>&1| tee >(zenity –text-info –width 530 –height 250) >logfile.log
And there you go! A logfile AND a nice zenity window full of your errors!