Browse Source

Simplifica git pre-commit hook para melhor desempenho

pull/1663/head
Marcio Mazza 7 years ago
parent
commit
64605f8e60
  1. 36
      check_migrations.sh
  2. 17
      scripts/hooks/pre-commit

36
check_migrations.sh

@ -1,5 +1,24 @@
#!/bin/bash #!/bin/bash
falha ()
{
NC='\033[0m'
RED='\033[0;31m'
echo
echo -e "${RED}ALGUMAS ALTERAÇÕES EXIGEM MIGRAÇÃO.${NC}"
echo -e "${RED}RODE 'python manage.py makemigrations' ANTES DE SUBMETER SEU CÓDIGO...${NC}"
echo -e "${RED}lembre de adicionar os arquivos criados ao git com 'git add .' ou semelhante.${NC}"
echo
exit 1
}
# deve haver alguma migration nova no commit
if ! git diff --cached --name-status | grep -q '^A.*/migrations/[[:digit:]]\{4\}_.*\.py$'; then
falha
fi
# a verificação de migrations pendentes deve passar
# TODO: Após migrar para Django 1.10 usar # TODO: Após migrar para Django 1.10 usar
# #
# ./manage.py makemigrations --check --dry-run # ./manage.py makemigrations --check --dry-run
@ -9,19 +28,6 @@
# A chamada do django 1.10 INVERTE ISSO. # A chamada do django 1.10 INVERTE ISSO.
# #
# https://docs.djangoproject.com/en/1.10/ref/django-admin/#cmdoption-makemigrations-check # https://docs.djangoproject.com/en/1.10/ref/django-admin/#cmdoption-makemigrations-check
if python manage.py makemigrations --dry-run --exit > /dev/null; then
python manage.py makemigrations --dry-run --exit falha
MIGRATIONS=$?
NC='\033[0m'
if [ $MIGRATIONS -eq 0 ]; then
RED='\033[0;31m'
echo
echo -e "${RED}ALGUMAS ALTERAÇÕES EXIGEM MIGRAÇÃO.${NC}"
echo -e "${RED}RODE 'python manage.py makemigrations' ANTES DE SUBMETER SEU CÓDIGO...${NC}"
echo -e "${RED}lembre de adicionar os arquivos criados ao git com 'git add .' ou semelhante.${NC}"
echo
exit 1
fi fi

17
scripts/hooks/pre-commit

@ -1,15 +1,8 @@
#!/bin/bash #!/bin/bash
# aqui apenas reportamos, não impedimos o commit # verifica antes se houve modificação em algum arquivo models.py
./check_qa.sh if git diff --cached --name-status | grep -q '^M.*models\.py$'; then
if [ $? -eq 1 ] # se a checagem de migrations falhar impedimos o commit
then set -e
RED='\033[0;31m' ./check_migrations.sh
echo
echo -e "${RED}#### POR FAVOR, CORRIJA OS PROBLEMAS APONTADOS!!! ####${NC}"
echo
fi fi
# se os comandos a seguir falharem impedimos o commit
set -e
./check_migrations.sh

Loading…
Cancel
Save