04 Dic 2015

Evitar un die() en nuestro repositorio

Evitar un die() en nuestro repositorio

Si en algún momento, trabajando con PHP, tuviste necesidad de interrumpir un script para hacer un debug, utilizando die, es posible que al hacer la corrección se te hubiera pasado quitarlo.

Y seguramente dos o tres horas después pusiste cara de what al saber que el sistema no funciona.

Partiremos que somos programadores serios y por lo tanto nuestro código vive en su respectivo repositorio de git.

Como queremos evitar que se nos vaya un die en el código que vamos a loguear, hay que hacer un script que se ejecute justo antes de hacer un commit:

#!/bin/sh
if git-rev-parse --verify HEAD >/dev/null 2>&1; then
    against=HEAD
else
    against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
 
for FILE in `git diff-index --check --name-status $against -- | cut -c3-` ; do
    # Revisemos que no se vaya ningun die()
    if [ "grep 'die();' $FILE" ]
    then
        echo $FILE ' cuidado, puedes tirar la applicación!'
        exit 1
    fi
done

Este script tiene un pequeño truco: el hash inicial de cualquier repositorio git.

Si, al hacer git init, git crea nuestro repo desde una plantilla alojada en git, que, por tanto, tiene su HEAD, y es ese identificador en el código.

Así que este script, básicamente hace una comparación entre el contenido del commit anterior y el actual, para revisar que archivos hemos editado y sobre cada uno de ellos buscar die(); y hacernos un aviso deteniendo el commit y así evitando la catástrofe.

Quieres saber más de git?
Contáctame: ivan.miranda{arroba}sincco.com

Artículos relacionados