NAME annotate-output - annotate program output with time and stream

SYNOPSIS annotate-output program [args ...]

DESCRIPTION annotate-output will execute the specified program, while prepending every line with the current time and O for stdout and E for stderr.

EXAMPLE $ annotate-output make 21:41:21 I: Started make 21:41:21 O: gcc -Wall program.c 21:43:18 E: program.c: Couldnt compile, and took me ages to find out 21:43:19 E: collect2: ld returned 1 exit status 21:43:19 E: make: *** [all] Error 1 21:43:19 I: Finished with exitcode 2

BUGS Since stdout and stderr are processed in parallel, it can happen that some lines received on stdout will show up before later-printed stderr lines (and vice-versa).

This is unfortunately very hard to fix with the current annotation strategy. A fix would involve switching to PTRACEing the process. Giving nice a (much) higher priority over the executed program could however cause this behaviour to show up less frequently.

The program does not work as well when the output is not linewise. In particular, when an interactive program asks for input, the question might not be shown until after you have answered it. This will give the impression that the annotated program has hung, while it has not.

annotate-output does not currently accept any command-line options, so --help, --version, and that kind of stuff do not currently work (unless you install /usr/bin/--help ;) ).

TODO Accept --help, --version command-line options.

Get rich with this very sophisticated piece of bash.

WEBSITE/SUPPORT The most recent version of this utility is on http://jeroen.A-

This program is community-supported (meaning: you ll need to fix it yourself). Patches are however appreciated, as is any feedback (posi- tive or negative).

AUTHOR annotate-output was written by Jeroen van Wolffelaar <jeroen@wolffe-> This manpage comes under the same copyright as annotate-output itself, read /usr/bin/annotate-output (or wherever you install it) for the details.