轻松安装基于make的git钩子。

whippet的Python项目详细描述


使用make目标来执行git钩子。灵感来自husky。在

Automatic buildPyPI versionPyPI downloads

基本原理

在处理Node.js项目时,我喜欢使用husky设置git钩子的简单性。由于在python生态系统中找不到类似的工具,我决定自己编写一个。在

据我所知,python中没有与npm scripts等效的标准,所以我选择依赖make,这似乎是python世界中组织与项目相关任务的流行方式。在

开发遵循我的工作需求,这意味着whippet可能对特性有点轻描淡写。如果你遗漏了什么,尽管提个建议吧。在

安装

Whippet是以PyPI package的形式提供的。使用可以从中安装包的工具,例如pip。在

$ pip install whippet

使用

安装挂钩

一旦安装了whippet,就可以通过调用希望安装钩子的目录中的whippetexecutable来使用它。Whippet检查该目录(或它的祖先)是否包含.git目录,并提供在其中安装钩子的建议。在

^{pr2}$

设置目标

Whippet钩子是检查是否存在与git钩子同名的make目标的脚本。如果存在这样的目标,脚本将执行它。让我们以pre-commit为例。一旦安装了whippet钩子,我们只需将pre-committarget添加到Makefile中,如下所示:

pre-commit:
    @echo "Whippet says: Woof!"

然后目标将在pre-commit上执行:

$ git commit -m 'Testing whippet'
pre-commit
Whippet says: Woof!
[master d654d33] Bar
1 file changed, 12 insertions(+)
create mode 100644 Makefile
$

卸载钩子

如果您有足够的资源并想删除whippetgit钩子,请调用whippet,并传递uninstall命令

$ whippet uninstall
whippet - Are you sure you want to uninstall hooks in /home/bpp/demo/.git? [Y/n] y

非交互式

为了避免提示,请将--assume-yes参数传递给whippet。这在向Makefile中的初始化目标添加whippet时非常有用。示例:

init:
    poetry install
    whippet --assume-yes

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是通过internet与客户机/服务器应用程序交互的最佳方式吗?   awt为什么不推荐java getPeer调用?   java类的添加方法   java在启动tomcat时传递数据库身份验证详细信息   如何创建具有关联值(如Swift enum)的Java枚举?   如何清理这个Java示例内存   visualvm如何在Java Visual VM中解释大型自时结果?   当实例变量的名称与参数变量相同时,java调用实例变量   eclipse缺少工件组织。硒。硒:seleniumjava:jar:3.14.59   java如何在Android Studio中Expandablelistview的子布局中使用Listview   从Guava 19升级到20时出现java编译错误   java在Maven 2中,我如何知道哪个依赖项来自于可传递依赖项?   需要javascript简单数据分级应用程序支持   接受特定对象或其子类型的java通用方法   在Java中剥离HTML   错误的Java字符串连接   Mybatis,Mysql中重复更新查询的java语法错误