gpt4 book ai didi

git - 如何将 virtualenv python 脚本作为 git 预提交 Hook 运行

转载 作者:太空狗 更新时间:2023-10-29 13:02:32 24 4
gpt4 key购买 nike

这是我的预提交脚本:

#!/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 的开发人员兼容的钩子(Hook)。有什么方法可以透明地使用 virtualenv 运行我的 python 脚本(即,与使用其系统 python 的开发人员保持兼容)?

最佳答案

您可以检查 $VIRTUAL_ENV 变量的预提交脚本并将其相应地添加到 $PATH 中:

#!/bin/bash

if [ -n $VIRTUAL_ENV ]; then
PATH=$VIRTUAL_ENV/bin:$PATH
fi

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

关于git - 如何将 virtualenv python 脚本作为 git 预提交 Hook 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com