Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Include variables from external files or shell commands in custom man page?

I am writing a few custom man pages and I would like to include things that might change often such as the date of the man page's writing.

For example, one is in a git repo that I would like to update the man page's date whenever a change is made to it without having to do it by hand.

Is there a possibility to #include or call shell variables in the *roff file, or perhaps a markdown file and then use pandoc to "compile" the man page with?

I understand this is a strange question, but I haven't come across anything similar.

Please note this is different than simply including a man page in the $MANPATH to be called by man.

I.E., I want to use something like:

.TH foo 10 "$(git log -n1 | grep Date | tail -c 31)" "$(git branch | grep "*")"

in place of having to manually change the date and branch/head name every time. Whether this is in markdown and given to pandoc or something else or just in the roff file itself, I am okay with either.

like image 626
Tropical_Peach Avatar asked Jul 21 '17 00:07

Tropical_Peach


1 Answers

Consider composing the content of the man page using a documentation generator language like asciidoc, which has most of the desired features. The asciidoc format can include external input files, and change all sorts of things on-the-fly as needed.

To include shell script, see Substitutions inside literals in Asciidoc .

Or one could use a shell script to generate a config file, then include that file.

Apologies in advance if this answer is at present little vague, in that it's more of a software recommendation (without any actual code) than a real answer.

like image 194
agc Avatar answered Sep 22 '22 15:09

agc