Skip to content

Abricot Norminette is meant for EPITECH Projects. [ PROMO 2026 ]

License

Notifications You must be signed in to change notification settings

ne0gate/Abricot-Norminette

 
 

Repository files navigation

Abricot Norminette

Abricot Norminette is a file checker notifying the user of coding style errors.

Files checked

  • *.c
  • *.h
  • *Makefile
  • Bad files

Error handling

Global scope

  • G1 Bad file header
  • G2 There should be only one line between each fonction
  • G3 Preprocessor directive must be indented
  • G4 Global Variable must be const
  • G6 #include should only contain .h files
  • G7 Line should finish only end with a "\n"
  • G8 Trailing space
  • G9 Trailing lines

Control structure

  • C1 There should not be more than 3 depth (conditionnal branching)
  • C3 Forbidden goto

Advanced

  • A3 Missing Line Break

Layout inside a function scope

  • L1 Coding content
  • L2 Bad indentation
  • L3 Misplaced spaces
  • L4 Misplaced curly bracket
  • L5 Bad variable declaration
  • L6 Bad line break

Files organization

  • O1 Check useless file
  • O3 Too many fonctions in a file
  • O4 Snake case convention

Functions

  • F3 A line lenght shoud not exceed 80 columns
  • F4 A function should not exceed 20 lines
  • F5 More than 4 arguments in a function or argumentless function
  • F6 Comments inside of functions

Header files

  • H2 Header not protected from doucle inclusion

Variables and Types

  • V1 Controlling structures and macros
  • V3 Pointers position

Installation

Clone the repository in your home folder :

git clone https://github.com/Just1truc/Abricot-Norminette.git ~/Abricot-Norminette

Get into the repository folder and execute the "install_abricot.sh" file :

cd ~/Abricot-Norminette && ./install_abricot.sh

Don't forget to star the repository if you like it. It would help me a lot.

Usage

Abricot is simple program. In order to use it, please type the following command into a terminal

abricot

In order to have a better report ( even if it's not currently checked by the moulinette ), please use the following command

abricot --all

Updating

Updates are regulary made.
To update Abricot, please use the following command :

abricot --update

Compatibility

Python3+ should be installed on your computer for Abricot to work.

OS Compatible ?
Debian based
Fedora based
macOS
Windows ⚠️ WSL advised

Contribution Jenkins

Abricot is tested against every coding style errors using Jenkins on https://jenkins.dev.socialeo.eu/job/Abricot-Norminette/
After your contribution, you might want to check if the build is successful.

You might create a new branch before merging into the main branch so Jenkins will automatically test it within a minute.

Credits

Programation : Justin Duc

linkeding bage git hub bage mail

Redaction : Baptiste Leroyer

linkeding bage git hub bage mail

L3 handling : Mathias André

linkeding bage git hub bage mail

Quality: Thomas Mazaud

linkeding bage git hub bage mail

Discord CI integration : Valentin Dury

linkeding bage git hub bage mail

About

Abricot Norminette is meant for EPITECH Projects. [ PROMO 2026 ]

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 94.8%
  • Shell 4.3%
  • Dockerfile 0.9%