提问人:Sun Jing Woo 提问时间:12/1/2021 更新时间:12/1/2021 访问量:373
Python 中的 git commit-msg。收到 EOF 错误
Git Commit-Msg in Python. Getting an EOF Error
问:
我正在为 .git/hooks/commit-msg 创建一个 commit-msg,如果有人可以帮助我找出问题所在,我在要求用户在此行输入()时收到 EOF 错误!response = input("Are you sure you want to commit? [y/N]: ")
#!/usr/bin/python
import sys
import re
def main():
# open file to read every lines
with open(sys.argv[1], "r") as fp:
lines = fp.readlines()
for idx, line in enumerate(lines):
if line.strip() == "# ------------------------ >8 ------------------------":
break
if line[0] == "#":
continue
# warning message
if (re.search('#[0-9]+$', line) is None):
print("Warning: add issue number related to this commit.")
# ask user to confirm until valid response
try:
while True:
response = input("Are you sure you want to commit? [y/N]: ")
if (response == 'y'):
sys.exit(0)
elif (response == 'N'):
sys.exit(1)
except EOFError as e:
print(e)
# successful commit
print("Success: Perfect commit!")
sys.exit(0)
if __name__ == "__main__":
main()
答:
0赞
bk2204
12/1/2021
#1
钩子在没有标准输入的情况下运行(更具体地说,标准输入重定向自 ),因此任何从标准输入读取的尝试都将立即读取 EOF。commit-msg
/dev/null
如果标准输出是 TTY,您可以尝试读取,但请注意,不能保证您根本就有一个。提交可以在没有任何终端的情况下以非交互方式运行,并且钩子不是交互式的。在这种情况下,您必须决定要做什么。/dev/tty
评论