Some time again, I wrote about how helpful it was to redirect a person web page into Preview. This lets you hold the person web page open, search it, and customarily have a greater consumer expertise than combating
much less) to navigate by means of the knowledge supplied there.
man -t apropos | open -fa Preview
Not too long ago, somebody requested me about extra fashionable command line interplay, particularly, instructions that use
--help or related to supply their documentation. Might that data be opened in Preview as properly.
So I placed on my pondering hat and set to work. The primary command line utility I made a decision to work with was
screencapture as a result of I’ve been utilizing it pretty closely over the previous couple of days. Nonetheless, it seems that Apple did not construct in an precise assist system past
man. It was a poor option to attempt to use to render however I made a decision to maintain plugging away at it as a result of I wished to have the ability to pipe each
stderr to Preview.
What I got here up with regarded one thing like this, multi function line after all:
bash -c "screencapture -? &> $TMPDIR/previewrendertext.txt; /usr/sbin/cupsfilter -i textual content/plain -D $TMPDIR/previewrendertext.txt 2> /dev/null | open -fa Preview"
This all depends on
cupsfilter, which may convert a file of textual content to a printable kind, which simply occurs to be readable by Preview as a PDF.
I’m doing fairly a little bit of conglomeration, becoming a member of the stderr and stdout streams utilizing
&> and saving them into my Mac’s
$TMPDIR. That file is cleaned up by the
-D possibility from
I additionally am eradicating the incessant debug messages from
cupsfilter by redirecting them to
/dev/null earlier than opening the print output in Preview.
Please observe that I’m nonetheless utilizing
bash on my most important system, in order that definitely impacts issues. Since I wanted somewhat of the
bash nuance, I made a decision to run all of it squished as a single
-c command. (I’m positive if I spent sufficient time, I may do all of it in
csh however I actually didn’t need to spend that point.)
As you may see within the earlier screenshot, an older utility meant for
man output doesn’t actually look all that sizzling shoved into Preview through
cupsfilter, particularly with line lengths. There’s additionally no good groffing and troffing to make every thing fairly, the way in which you get with
So how may would this kludge work with a contemporary command-line app, akin to these produced utilizing the Swift Argument Parser (https://github.com/apple/swift-argument-parser)? First, I constructed a utility that might let me run any command (properly, as long as it was correctly quoted) with out having to kind all the small print out every time I ran it:
#! /bin/bash $@ &> $TMPDIR/previewrendertext.txt ; /usr/sbin/cupsfilter -i textual content/plain -D $TMPDIR/previewrendertext.txt 2> /dev/null | open -fa Preview
This allowed me to name
preview "now --help" to redirect the usual assist message from my
now utility (https://github.com/erica/now) to Preview. Yeah, initially I wished to only pipe stuff into it however I couldn’t determine the best way to get the stderr and the stdout piped collectively right into a single stream, not to mention convert them right into a file kind as a result of
cupsfilter doesn’t know or do pipes.
It’s fairly readable and well-formatted because of the automated configuration that the Swift Argument Parser supplies from my code nevertheless it simply feels, you realize, very very plain.
So I went forward and tried to see what would occur if I groffed it up somewhat by passing it by means of
/usr/bin/groff -Tps -mandoc -c as a substitute of utilizing
bash -c "now --help &> $TMPDIR/previewrendertext.txt; /usr/bin/groff -Tps -mandoc -c $TMPDIR/previewrendertext.txt" | open -fa preview
And it’s…fairly meh. I attempted mandoc, mdoc, me, mm, ms, and www codecs. All of them got here out the identical, and not one of the SAP tabs actually labored. I feel it appears much more “manny” than the straight printout however the indentation actually bugged:
I made a decision to cease at about this level as there’s actually a time when additional effort simply isn’t price additional funding — so I may throw it on the market and see if this was of curiosity to anybody else.
Let me know.