首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在预提交钩子之前运行自定义shell脚本文件

如何在预提交钩子之前运行自定义shell脚本文件
EN

Stack Overflow用户
提问于 2019-12-27 18:05:42
回答 1查看 7.7K关注 0票数 14

在我的python项目中,我有pre-commit-config.YAML,我想在其中创建我的自定义文件。

如果python lint错误大于某些数字,则此文件的目的是使git提交失败。以下命令将用于对行进行计数

代码语言:javascript
运行
复制
pylint api/ | wc -l

有没有人能给我一些建议。我是MAC和Python生态系统的新手?

编辑sh文件如下所示。

代码语言:javascript
运行
复制
#!/bin/sh
a=$(pylint source/ | wc -l)
b=20

errorsCount="$(echo "${a}" | tr -d '[:space:]')"

if [ $errorsCount -gt $b ]
then
    exit 1
fi

我试过了

代码语言:javascript
运行
复制
repos:
- repo: local
  hooks:
    - id: custom-script-file
      name: custom-script-file
      entry: hooks/pre-commit.sh
      language: script
      types: [python]
      pass_filenames: false

但它不会起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-12-27 18:42:46

下面是使用内联bash命令作为预提交钩子条目方法

代码语言:javascript
运行
复制
- repo: local
  hooks:
    - id: pylint-error-count
      name: pylint-error-count
      entry: bash -c 'lines=$(pylint api/ | wc -l) && (( lines > 10)) && exit 1'
      language: system
      types: [python]
      pass_filenames: false

您还可以编写脚本并以这种方式调用它:

代码语言:javascript
运行
复制
      entry: path/relavite/to/repo/root/pylint_validator.sh
      language: script

注意:wc -l不是错误的准确计数。

编辑:添加更多选项

代码语言:javascript
运行
复制
- repo: local
  hooks:
    - id: simple-pylint
      name: simple-pylint
      entry: pylint
      args: ["api/"]
      language: system
      types: [python]
      pass_filenames: false

    - id: inline-pylint-with-bash
      name: inline-pylint-with-bash
      entry: bash -c 'lines=$(pylint api/ | wc -l) && (( lines > 10)) && exit 1'
      language: system
      types: [python]
      pass_filenames: false

    - id: custom-script-file
      name: custom-script-file
      entry: relative/path/to/repo/root/check_pylint.sh
      language: script
      types: [python]
      pass_filenames: false
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59499061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档