Как я могу запустить скрипт python virtualenv как обработчик предварительной фиксации git

Это мой сценарий предварительной фиксации:

#!/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

Один из исполняемых файлов в pre-commit.d - это сценарий python (pre-commit-pylint.py), который начинается с:

#!/usr/bin/env python
import pylint

pylint установлен на моем virtualenv. Моя проблема в том, что git запускает предварительную фиксацию / usr / libexec / git-core: / usr / bin в $ PATH , поэтому, даже если мой virtualenv активирован, Сценарий pre-commit.d / pre-commit-pylint.py работает с системой / usr / bin / python (вместо работы с виртуальным питоном).

Я хочу иметь хуки, совместимые с разработчиками, не использующими virtualenv. Есть ли способ запустить мой скрипт python с помощью virtualenv прозрачно (то есть, оставаясь совместимым с разработчиками, которые используют их системный python)?

7
задан Joaquin Cuenca Abela 27 January 2012 в 17:13
поделиться