The most awesome norminette made using Crystal.
Project Description • Installation • How to use • Features • Benchmarks • Credits
crNormz is a norm checking program developed using Crystal so that students can check for compliance with the EPITECH standard. This linter is currently the fastest, most reliable and most accurate, see Benchmarks
To clone and run this application, you'll need Git installed on your computer. From your command line:
# Clone this repository
$ git clone https://github.com/CustomEntity/crNormz
# Go into the repository
$ cd crNormz
# Install the norminette
$ sudo ./crnormz_installer.sh
# Show help
$ crnormz -h
Usage: crnormz [-fgtlh]
-f, --ignore-file= Ignore file from the checker
-g, --ignore-function= Ignore forbidden functions
-t, --ignore-type= Ignore errors of a specific type
-l, --ignore-level= Ignore errors of a specific level (Major, Minor or Info)
-r, --raw-output Enables easy parsing for applications
-h, --help Show this help
# Run the norminette
$ crnormz
# Run the norminette excludind all .o files
$ crnormz -f "*.o"
# Run the norminette without checking the forbidden functions (printf and scanf)
$ crnormz -g "printf,scanf"
# Run the norminette excluding all O1 rules
$ crnormz -t "O1"
# Run the norminette excluding all info level rules
$ crnormz -l "info"
# Sort files alphabetically
$ crnormz -s
# Run the norminette without text formatting
$ crnormz -r
These benchmarks were performed on a project in real use with 225 source files, 30 header files and 1 Makefile.
Norminette | Time, s | Major | Minor | Info |
---|---|---|---|---|
Epitech National | N/A | 473 | 59 | 49 |
👑 crNormz | 0.550 | 481 | 84 | 49 |
Abricot | 7.302 | 99 | 228 | 48 |
JankunNorme | 1.274 | 259 | 209 | 48 |
Bubulle | 10.763 | 27 | 22 | 49 |