core: make it possible to check flake8 like we check package
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 30 Aug 2020 22:12:15 +0000 (00:12 +0200)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tue, 1 Sep 2020 20:34:47 +0000 (22:34 +0200)
commit841ee767be173126ec61f77b7022da2be6665d8c
tree7d151ffe5f5b359af4bfe73af75b1e38b6cdb9d1
parent9a262b4054e2c25d6c6009948bb35a2f6f4e276a
core: make it possible to check flake8 like we check package

Move the code to run check-flake8 into the Makefile, like we have for
check-package, so that it is easy to run locally (and not wait for
someone to report a failure from their Gitlab pipelines).

Compared to the existing check from gitlab-ci.yml, the Makefile check
differs in this respect:

  - don't explicitly find *.py files: they are supposed to also be found
    as a result of running 'file' on them;

  - use git ls-tree instead of find: this is supopsedly faster as it
    uses the index rather than readdir();

  - don't output the count of warnings or errors: the output is a single
    integer, which is confusing when there are errors, and even more so
    when there are no, when it is simply '0';

  - don't sort: the output is already stable and independent from the
    locale;

  - don't report the number of processed files: this information is
    rather useless, and getting a hold of it would be more challenging
    in this new code.

Note: ideally, we would want to use --null, --zero, or similar options,
with utilities that generates or parses a files listing.  While git
ls-tree and xargs do support it, it becomes a little bit tricky to use
the --print0 option of file, and then grep in that output (it is not
undoable, but would requires replacing grep+cut with some sed trickery).
Since we do not expect our scripts names to contain funky chars (like
\n or a colon), we just hand-wave away that issue (and the old code was
doing the same assumption too).

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Makefile
support/misc/gitlab-ci.yml.in