【发布时间】:2014-01-20 05:03:28
【问题描述】:
所以在我的 Gitolite 服务器上,我设置了一个从触发器 GIT_POST 运行的 python 脚本。我想要它做的就是向客户端打印一些信息。
这是脚本:
#!/usr/bin/env python
import sys
import fileinput
def main():
print "Trying to read input"
for line in sys.argv:
print line
sys.exit(0)
if __name__ == '__main__':
print 'Script initalizing'
main()
很简单,对吧?好吧,当我提交并推送到我的服务器时,我得到了这个:
Counting objects: 5, done.
Writing objects: 100% (3/3), 244 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git-user:website
fe07881..cfc7979 master -> master
其中不包含它应该输出的任何文本。我知道这个脚本会运行,因为如果将sys.ext(0) 更改为sys.exit(1),git 会认为推送失败。此外,如果我运行失败的代码,客户端会收到堆栈跟踪和所有内容。
我在 git 1.7.1 上运行 gitolite3 v3.5.3.1-1-gf8776f5,那么我在这里缺少什么?
【问题讨论】:
-
你可以试试
sys.stdout = sys.__stdout__。 -
@ArgiriKotsaris 不起作用,但如果我将其设置为
sys.stdout = sys.__stderr__它会打印。