如何在Git钩子中询问用户输入?

时间:2017-08-03 21:48:44

标签: git bash githooks

我一直在尝试将一个简单的bash脚本编写为select from <class-name> where @rid not in (select in("InfoEdge").in("RepositoryEdge") from #42:0) and @rid in (select in("InfoEdge").in("RepositoryEdge") from #41:5) 钩子,在推送Java代码时我会检查缺少的测试文件。

问题是:pre-push命令没有等待用户输入,它就像没有输入任何输入一样继续。

read

1 个答案:

答案 0 :(得分:5)

Git挂钩不使用标准输入。因此,必须附加来自终端的输入:has_java="git diff --stat --cached origin/master | grep \"src\/main.*\.java\"" has_test="git diff --stat --cached origin/master | grep \"src\/test.*\.java\"" exit_val=0 if eval $has_java; then if eval $has_test; then : else echo "*** NO TESTS WERE FOUND WHILE PUSHING JAVA CODE ***" read -n1 -p "Do you want to CONTINUE pushing? [Y/n]" doit case $doit in n|N) exit_val=1 ;; y|Y) exit_val=0 ;; *) exit_val=0 ;; esac fi fi

只需在命令末尾添加终端即可使用:

dev/tty