Skip to main content

Integrated tool for multi-language linters for command line tooland GitHub action

Project description

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 the documentation 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
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

To use a specific version, replace v0.

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 the documentation.

Contributing

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

Credits

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

# Changelog

## [0.2.1](https://github.com/bowentan/glob-linters/compare/v0.2.0…v0.2.1) (2022-10-15)

### Bug Fixes

## [0.2.0](https://github.com/bowentan/glob-linters/compare/v0.1.1…v0.2.0) (2022-10-15)

### Miscellaneous Chores

## [0.1.1](https://github.com/bowentan/glob-linters/compare/v0.1.0…v0.1.1) (2022-10-15)

### Miscellaneous Chores

## [0.1.0](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.27…v0.1.0) (2022-10-15)

### Bug Fixes

### Miscellaneous Chores

## [0.1.0-rc.27](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.26…v0.1.0-rc.27) (2022-10-13)

### Miscellaneous Chores

## [0.1.0-rc.26](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.25…v0.1.0-rc.26) (2022-10-13)

### Miscellaneous Chores

## [0.1.0-rc.25](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.24…v0.1.0-rc.25) (2022-10-13)

### Miscellaneous Chores

## [0.1.0-rc.24](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.23…v0.1.0-rc.24) (2022-10-13)

### Miscellaneous Chores

## [0.1.0-rc.23](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.20…v0.1.0-rc.23) (2022-10-13)

### Miscellaneous Chores

## [0.1.0-rc.20](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.16…v0.1.0-rc.20) (2022-10-13)

### Miscellaneous Chores

## [0.1.0-rc.16](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.14…v0.1.0-rc.16) (2022-10-13)

### Continuous Integration

### Miscellaneous Chores

## [0.1.0-rc.14](https://github.com/bowentan/glob-linters/compare/v0.1.0-rc.13…v0.1.0-rc.14) (2022-10-13)

### Documentation

### Miscellaneous Chores

### Continuous Integration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glob-linters-0.2.1.tar.gz (47.6 kB view details)

Uploaded Source

Built Distribution

glob_linters-0.2.1-py2.py3-none-any.whl (12.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file glob-linters-0.2.1.tar.gz.

File metadata

  • Download URL: glob-linters-0.2.1.tar.gz
  • Upload date:
  • Size: 47.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for glob-linters-0.2.1.tar.gz
Algorithm Hash digest
SHA256 bfcabce73216c85e434d4e4063544964fbee680d2599ec55a7c131478c34b236
MD5 7ccaaf582a69b46f131883bc86f1d2d3
BLAKE2b-256 ebfb04a16a6055ca0e0b71946e50af7853a3838660a46ba753822b2fc424c801

See more details on using hashes here.

Provenance

File details

Details for the file glob_linters-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for glob_linters-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ba80422e8e6a14dc88c188b988234cfe706d17a4112b7484685992c7391661d6
MD5 8001427fb6e727aa659cd7891bb1f650
BLAKE2b-256 be6fd28742baff52b9eff031ff5521821ef5278649439dfa1da436f78c3c1dca

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page