fndrd1d1 / enforcer

simple source code sanitizer (check and fix anomalies in source code)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status Appveyor Build status

enforcer

check source code for certain metrics (intended as a pre-commit hook)

Screenshot

Usage

Use -h for short descriptions.

USAGE:
    enforcer [OPTIONS] [-g ENDINGS...] <path>
    enforcer [-g ENDINGS...] [-q | --quiet] [-j <NUM> | --threads=<NUM>] [-a | --color] <path>
    enforcer [-c | --clean] <path>
    enforcer [-l <MAX> | --length=<MAX>] <path>

ARGS:
    <path>...

OPTIONS:
    -l, --length <MAX>     max line length [not checked if empty]
    -j, --threads <NUM>    number of threads [default: 4]
    -c, --clean            clean up trailing whitespaces and convert tabs to spaces
    -a, --color            use ANSI colored output
    -g <ENDINGS>           use these file endings (e.g. ".cpp",".h")
    -h, --help             Prints help information
    -q, --quiet            only count found entries
    -s, --status           show configuration status
    -t, --tabs             leave tabs alone (without that tabs are considered wrong)
    -V, --version          Prints version information

Example config file (name .enforcer)

ignore = [".git", ".repo"]
endings = [".c", ".cpp", ".h"]

Configuration

If you place a .enforcer file with the above content in your project directory, all files ending in .c, .cpp and .h will be checked. (.git and .repo directories will be ignored.) The config file uses the TOML format.

Example Usage

Let's see how we perform on the linux kernel.

linux-4.5 > find . -type f | wc -l
  52882

linux-4.5 > enforcer -v
  Version: 0.5.0
linux-4.5 > time enforcer -t -n
41100 / 41100 [==================================================] 100.00 % 8337.43/s
enforcer-error-count: 3655
checked 41100 files (enforcer_errors!)
  [with ILLEGAL CHARS:1083]
  [with TRAILING SPACES:2572]

real	0m6.340s
user	0m3.755s
sys	0m3.779s

Ok, let's at least remove the trailing whitespaces:

linux-4.5 > time enforcer -t -c
...
checked 41100 files (enforcer_errors!)
  [with ILLEGAL CHARS:1083]
  [with TRAILING SPACES:2572]

real	0m5.255s
user	0m4.207s
sys	0m5.934s

Now check again

linux-4.5 > time enforcer -t -q
41100 / 41100 [==================================================] 100.00 % 18314.68/s
enforcer-error-count: 1083
checked 41100 files (enforcer_errors!)
  [with ILLEGAL CHARS:1083]

real	0m3.621s
user	0m3.758s
sys	0m2.411s

Changelog

[0.14.3] - 07/16/2019

  • fixed raketask

About

simple source code sanitizer (check and fix anomalies in source code)

License:MIT License


Languages

Language:Rust 86.7%Language:Ruby 13.0%Language:C++ 0.3%