如何在 git 命令后在寻呼机中显示输出?
Posted
技术标签:
【中文标题】如何在 git 命令后在寻呼机中显示输出?【英文标题】:How can I display output in a pager after a git command? 【发布时间】:2011-11-15 14:51:06 【问题描述】:我构建了一个应该与 git 一起使用的脚本,以便在 git 命令之后将输出发送到寻呼机。我想用 Python 做到这一点。
我有一个写入标准输出的 python 脚本。现在我想在用户在 git 中设置的寻呼机中显示它的输出。
我知道我总是可以提供一个执行此操作的包装脚本:
git-whatever | less
有没有办法在 python 中做到这一点?
【问题讨论】:
【参考方案1】:您甚至不必创建临时文件(使用管道代替):
import subprocess
proc=subprocess.Popen('less', stdin=subprocess.PIPE)
lines=(str(i) for i in range(1000))
proc.stdin.write('\n'.join(lines))
proc.stdin.close()
proc.communicate()
【讨论】:
【参考方案2】:git 喜欢将东西写入临时文件,然后将文件名传递给 git 挂钩。因此,按照该模式,您可以将输出写入临时文件,然后使用 subprocess.Popen
调用 less
:
import subprocess
import tempfile
lines=(str(i) for i in range(1000))
f=tempfile.NamedTemporaryFile(mode='w')
f.write('\n'.join(lines))
f.flush()
proc=subprocess.Popen(['less',f.name])
proc.communicate()
f.close() # deletes the temporary file
【讨论】:
这看起来很干净。我试试看。以上是关于如何在 git 命令后在寻呼机中显示输出?的主要内容,如果未能解决你的问题,请参考以下文章
将`git difftool`管道传输到寻呼机时如何保留颜色
如何在 `less` 中避免`Pattern not found` 消息和屏幕重绘(作为 Git 寻呼机)