attempt as using goroutines to add concurrency.
the deferred flush was happening after singling the channel, which made it non-deterministic. need to flush *then* signal the channel.
moving constants closer to where they are used
adjust the syntax, and allow of inline expansion of code references...
switch to using non-buffered output.
reorganize this function
be sure to put a newline when printing the time.
make sure to always emit the source command, even if the file cannot be shown.
use explicit begin and end markers to replace auto generated code references.
fixing tests
abstracting a method to make the code a little more readable.
feature: write to the same file that you are reading from.
unify channels into a `Result` channel
removing unused flags
refactor to more explicitly handle operating in pipe mode (using STDIN and STDOUT)
raise a useful error when unable to get data from git
trim the new lines from the end of the command output on errors, just in case...
be sure to close the input file when done.
don't use a `defer` to push things onto the channel, also catch errors where the end marker is never detected...
move error handling into channel communication, not to interrupt the directory walk.