Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

check-commit-hook

A pre-commit hook implementation of the Linux kernel checkpatch.pl script.

Hooks

Checkpatch

Uses Linux kernel checkpatch.pl to check for coding style errors in C code, Makefiles, etc.

See the docs for the script itself here.

Custom configuration file

The hook uses configuration file to specify which rules to enforce or ignore. A default configuration file is provided in checkpatch_hook/data/checkpatch.yaml but it can be overriden by a custom configuration file and passed to the script using the --config-file option.

The configuration file is a YAML file with the following structure:

DIR_CONFIGS:
 <directory1>:
 errors_ignored:
 - <checkpatch option>
 - <checkpatch option>
 max_line_length: <number>
 <directory2>:
 errors_enabled:
 - <checkpatch option>
 - <checkpatch option>
 max_line_length: <number>

Note: Either errors_enabled or errors_ignored are enforced, not both.

Magic keys

The configuration file supports some magic keys that make it easier to configure the script.

__default__

The __default__ key can be used to apply the same configuration to all the files in the repository.

__default__:
 errors_ignored:
 - <checkpatch option>
 - <checkpatch option>
 - ...
 max_line_length: <number>
ERRORS_COMMON

The ERRORS_ENABLED key can be used as a placeholder for all the errors enabled, and this needs to be part of errors_enabled list to be used.

ERRORS_ENABLED:
 - <checkpatch option>
 - <checkpatch option>
 - ...
DIR_CONFIGS:
 <directory>:
 errors_enabled:
 - ERRORS_ENABLED
 - <checkpatch option>
 - <checkpatch option>
 - ...
 max_line_length: <number>
IGNORES_COMMON

The IGNORES_COMMON key can be used as a placeholder for all the errors ignored for all the files, and this needs to be part of errors_ignored list to be used.

IGNORES_COMMON:
 - <checkpatch option>
 - <checkpatch option>
 - ...
DIR_CONFIGS:
 <directory>:
 errors_ignored:
 - IGNORES_COMMON
 - <checkpatch option>
 - <checkpatch option>
 max_line_length: <number>

Usage

Pre-commit

To use the hooks in your local repository you need to install pre-commit and add the following to your .pre-commit-config.yaml file:

 - repo: https://github.com/bluwireless/check-commit-hook
 rev: xxxx
 hooks:
 - id: checkpatch
 args: [--config-file, checkpatch_custom.yaml]

The --fix-inplace argument can be added to let checkpatch try to fix errors where it can. See the checkpatch docs.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /