Questo è il mio script di pre-commit:Come posso eseguire uno script python virtualenv come git pre-commit hook
#!/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 degli eseguibili in pre-commit.d è uno script python (pre- commit-pylint.py) che inizia con:
#!/usr/bin/env python
import pylint
pylint è installato sul mio virtualenv. Il mio problema è che git esegue pre-commit prepagando /usr/libexec/git-core:/usr/bin
a $PATH
, quindi anche se il mio virtualenv è attivato lo script pre-commit.d/pre-commit-pylint.py
viene eseguito con il sistema /usr/bin/python
(invece di essere eseguito con virtualenv python).
Desidero avere gli hook compatibili per gli sviluppatori che non utilizzano virtualenv. C'è un modo per eseguire il mio script python con virtualenv in modo trasparente (cioè, rimanendo compatibile con gli sviluppatori che utilizzano il loro sistema python)?
hai mai trovato un modo per impedire a Git di anteporre '/ usr/bin' al $ PATH del hook? Ho appena incontrato questo me stesso. – joemaller
no, non l'ho fatto. Ho lavorato attorno al mio problema con la risposta di Rob. –
stesso per Ruben's rbenv: https://github.com/sstephenson/rbenv/issues/374 –