我一直在尝试将一个简单的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
答案 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