Some time again, I wrote about how helpful it was to redirect a person web page into Preview. This lets you maintain the person web page open, search it, and customarily have a greater person expertise than fighting extra
(or much less
) to navigate via the knowledge supplied there.
man -t apropos | open -fa Preview
Lately, somebody requested me about extra fashionable command line interplay, particularly, instructions that use --help
�or comparable to supply their documentation. May that data be opened in Preview as nicely.
So I placed on my considering 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 needed to have the ability to pipe each stdout
and stderr
�to Preview.
What I got here up with seemed one thing like this, multi functional line in fact:
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 type, 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 cupsfilter
.
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 notice that I�m nonetheless utilizing tcsh
/zsh
�over bash
�on my major 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 certain if I spent sufficient time, I might 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 by way of cupsfilter
, particularly with line lengths. There�s additionally no good groffing and troffing to make all the pieces fairly, the way in which you get with man
:
So how might 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 will let me run any command (nicely, as long as it was correctly quoted) with out having to sort 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 needed to simply 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 type as a result of cupsfilter
�doesn�t know or do pipes.
It�s fairly readable and well-formatted because of the computerized configuration that the Swift Argument Parser offers from my code nevertheless it simply feels, you recognize, very very plain.
So I went forward and tried to see what would occur if I groffed it up somewhat by passing it via /usr/bin/groff -Tps -mandoc -c
as a substitute of utilizing cupsfilter
:
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 believe it seems to be 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 might throw it on the market and see if this was of curiosity to anybody else.
Let me know.