glob-linters#

https://img.shields.io/pypi/v/glob_linters.svg Documentation Status Build and publish

glob-linters is an integtated tool to lint multiple programming and scripting languages and can be used as a normal command line in terminals as well as a workflow in GtiHub actions.

Features#

  • Linting multiple languages.

  • Fully supporting configuration for each linter via configuration files or command options

Supported linters#

Language

File extension

Linters

c++

.cpp

cpplint, clang-format

Python

.py

pylint, black, flake8, isort, mypy

Quick start#

You can use glob-linters as a command line tool in a terminal or a workflow in GitHub action. Choose the appropriate one as a quick start.

Command line#

To use as a command line tool, install the latest package by pip using the following command:

$ pip install glob-linters

After successful installation, you can use glob-linters as a command tool by issuing the following to see the command line options.

$ glob_linters -h

Then run glob_linters to lint all supported languages in the current directory, which will scan all corresponding files recursively and then perform linting. If you want to lint particular files, please visit Usage for more advanced usages.

GitHub action#

To use glob-linters in GitHub action, create a workflow file such as .github/workflows/glob-linters.yml in your own repository with the example contents:

name: Code linting

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]

jobs:
  glob-linters:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Linting
        uses: bowentan/glob-linters@v0.1.0-rc.13
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

You can control the workflow by creating a configuration file named as .github/glob-linters.ini and a sample configuration is given below:

[target]
target_dir = .
target_suffix = .py

[executable]
cpplint = cpplint
clang_format = clang-format
pylint = pylint
flake8 = flake8
black = black
isort = isort

[env]
debug = True

This configuration will enable debug mode with additional information when running and set the directory that will be searched for linting .py files to be the root of your repository.

For more details about usage, please refer to Usage.

Contributing#

If you are interested in this project and would like to make some contributions, please refer to Contributing for the contributing guide.

Credits#

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.