Ésta es mi guión pre-commit:¿Cómo puedo ejecutar un script Python virtualenv como git gancho pre-commit
#!/bin/bash
for f in .git/hooks/pre-commit.d/*; do
if [ -x "$f" ]; then
if ! "$f"; then
echo "DID NOT COMMIT YOUR CHANGES!";
exit 1
fi
fi
done
Uno de los ejecutables en pre-commit.d es un script en Python (pre- commit-pylint.py) que comienza con:
#!/usr/bin/env python
import pylint
pylint está instalado en mi virtualenv. Mi problema es que git ejecuta pre-commit anteponiendo /usr/libexec/git-core:/usr/bin
a $PATH
, por lo que incluso si mi virtualenv está activado, el script pre-commit.d/pre-commit-pylint.py
se ejecuta con el sistema /usr/bin/python
(en lugar de ejecutarse con el virtualenv python).
Quiero tener ganchos que son compatibles para los desarrolladores que no están usando virtualenv. ¿Hay alguna manera de ejecutar mi secuencia de comandos python virtualenv de forma transparente (es decir, permanecer compatible con los desarrolladores que están utilizando su sistema python)?
¿Alguna vez encontró una forma de evitar que Git anteponga '/ usr/bin' al $ PATH del gancho? Solo lo encontré yo mismo. – joemaller
no, no lo hice. Trabajé alrededor de mi problema con la respuesta de Rob. –
mismo para Rubben's rbenv: https://github.com/sstephenson/rbenv/issues/374 –