I am writing a small script for watchr that runs my PHP unit tests.
Current script runs tests using system() and displays them colored.
I am trying to add libnotify functionality, but for that I need to parse the output and match against regexp, so that notification will either display green or red.
system() doesn’t return output, %x does return, but puts p doesn’t display colors, which I need to quickly see which test failed. One option would be to run tests twice – once for display in terminal window, and second time for checking which notification to show, but I would rather avoid it.
putsdoes display colors. The problem is when you run with%xyour PHP test runner will most likely turn off colored output because it thinks it’s not running under a terminal.The same thing happens if you do
run_php_test | lessin the shell. To fix it you need to force colored output on the PHP test runner.EDIT
Easiest way to run a subprocess with
pty: