提示用户从Git GUI输入

时间:2016-10-13 18:18:49

标签: git sh

每次将代码推送到远程仓库时,我都会运行一个pre-push脚本。 (运行OSX 10.11.6和Git 2.6.4)

#!/bin/sh

read -p "*** Did you run tests and lint? (y/n) " -n 1 -r < /dev/tty
echo # move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
    then
        echo "*** WITH GREAT POWER COMES GREAT RESPONSIBILITY... ***"
        exit 0
fi

echo "*** ABORTING GIT PUSH ***"
exit 1

如果我从命令行运行它,这个脚本可以很好地运行,并且它在技术上做得很好&#34; work&#34;当我尝试使用git gui推送时 - 问题是Git GUI只是挂起,因为没有输入框可供我输入任何内容。

我甚至可以这样做吗?

1 个答案:

答案 0 :(得分:2)

git-gui的一部分包含一个单独的脚本git-gui--askpass,它通常用于使用UI请求密码,但也可以执行是/否查询。以下替换工作与git-gui而不是读取终端。

#!/bin/bash

yno=$(git gui--askpass "Did you run the tests and lint (yes/no)?")
if [ "$yno" = "yes" ]
then
    echo "*** WITH GREAT POWER COMES GREAT RESPONSIBILITY... ***"
    exit 0
fi
echo "*** ABORTING GIT PUSH ***"
exit 1