Wykonaj przechylenie wstępne git tylko wtedy, gdy pliki w określonym katalogu zostały zmodyfikowane


11

Próbuję utworzyć skrypt bash dla haka wstępnego zatwierdzenia git. Za każdym razem, gdy dokonywane jest zatwierdzenie, chcę sprawdzić, czy pliki w określonym katalogu są częścią plików pomostowych, a jeśli tak, uruchom polecenie (zadanie Grunt). Do tej pory mam wszystko działające, z wyjątkiem uruchamiania tylko, jeśli niektóre pliki są zmodyfikowane. Staram się, aby to zadziałało:

SRC_PATTERN="site/assets/js/"
if [ grep --quiet $SRC_PATTERN `git diff --cached --name-only` ]
then
  echo "none"
  exit 0
fi

To niestety daje mi błędy.

Odpowiedzi:


9

próbować,

git diff --cached --name-only | if grep --quiet "$SRC_PATTERN"
then
    ...

Miłego hakowania


8

Spróbuj tak:

SRC_PATTERN="site/assets/js/"
if git diff --cached --name-only | grep --quiet "$SRC_PATTERN"
then
  echo "none"
  exit 0
fi

Wygląda to podobnie do przyjętej odpowiedzi, ale ta jest błędna. W bash / sh każde polecenie w potoku jest wykonywane w osobnej podpowłoce, więc wyjście w części wtedy opuści tylko podpowłokę, każdy kod następujący po fi będzie nadal wykonywany!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.