2016-10-13 3 views
3

У меня есть сценарий pre-push, который я хочу запускать каждый раз, когда я нажимаю код на свое дистанционное репо. (Запуск OSX 10.11.6 и Git 2.6.4)Запросить пользователя для ввода от Git GUI

#!/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 

Этот скрипт работает отлично, если я бегу из командной строки, и это делает технически «работать», когда я пытаюсь нажать с помощью git gui - проблема в том, что Git GUI просто зависает, так как для меня нет окна ввода для ввода чего-либо.

Могу ли я это сделать?

ответ

2

Часть git-gui включает отдельный скрипт git-gui--askpass, который обычно используется для запроса паролей с использованием пользовательского интерфейса, но также может выполнять да/нет запросов. Следующая замена работает с 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 
+0

Хорошо, я проверю это. Тем не менее, мне также интересно, хорошо ли это работает с другими инструментами GUI (например, GitHub Desktop). Я пытаюсь написать скрипт «cross-tool» для всех в моей команде, но я предполагаю, что это просто невозможно. – arthurakay

+0

Если у вас есть команда, то на самом деле это не так. Я просто удалю скрипт раздражающего крючка на моей машине. Вы должны потратить время на интеграцию выполнения ваших тестов и заливки на сервере в рамках процесса обзора. т.е.: создать систему непрерывной интеграции с запросами на тягу. Попросите разработчиков разблокировать ветви функций и поднять запросы на запросы. Они могут быть автоматически отклонены для сбоев во время теста или проверки. GitLab - одна из таких систем. GitHub делает это тоже (с крючками для различных систем). – patthoyts

Смежные вопросы