在自定义手册页中包含来自外部文件或shell命令的变量?
我正在编写一些自定义man
页,我想包括可能经常改变的内容,例如man
页的写作日期。
例如,一个人在git
仓库中,我想更新man
页的日期,只要对其进行更改而无需手动完成。
是否有可能#include
在或致电shell变量*roff
文件,或者一个降价文件,然后使用pandoc
“编译”的man
页面?
我明白这是一个奇怪的问题,但我没有遇到类似的事情。
请注意,这不同于仅包含$MANPATH
中由man
调用的man
。
IE浏览器,我想使用像这样的东西:
.TH foo 10 "$(git log -n1 | grep Date | tail -c 31)" "$(git branch | grep "*")"
而不必每次都手动更改日期和分支/名称。 无论这是降价还是给pandoc
或其他东西,或只是在roff
文件本身,我都可以。
考虑使用像asciidoc这样的文档生成器语言来编写man
页的内容,该语言具有大部分所需的功能。 asciidoc格式可以包含外部输入文件,并根据需要即时更改各种事物。
要包含shell脚本,请参阅Asciidoc中的文字替换。
或者可以使用shell脚本来生成配置文件,然后包含该文件。
如果这个答案目前很少含糊不清,因为它更像是一个软件推荐(没有任何实际的代码)而不是真正的答案。
我从您的示例行中看到您正在使用Git - 我相信您可以使用'pre-commit'git钩子(基本上是在处理提交之前运行的脚本)来更新联机帮助页的内容(并对更改进行暂存)每次提交。
例如,您可以将以下命令放在.git / hooks / pre-commit文件中,以便在您提交时更新手册页的内容:
sed -i "" "s/^.TH foo 1 ".*/.TH foo 1 "$(date)"/" path/to/manpage.roff git add path/to/manpage.roff
请注意,该路径相对于git存储库的根目录。
链接地址: http://www.djcxy.com/p/96839.html上一篇: Include variables from external files or shell commands in custom man page?
下一篇: onmousemove event does not fire from within external source?