blob: 8f8026eb3bfa4455ee83112bd4433ea1c1fa3941 [file] [log] [blame]
Mohammad Azim Khan21798102018-07-06 00:41:08 +01001#! /usr/bin/env sh
2
Bence Szépkúti1e148272020-08-07 13:07:28 +02003# Copyright The Mbed TLS Contributors
Bence Szépkútic7da1fe2020-05-26 01:54:15 +02004# SPDX-License-Identifier: Apache-2.0
5#
6# Licensed under the Apache License, Version 2.0 (the "License"); you may
7# not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
Gilles Peskine7be45512020-08-12 02:31:02 +020017
18# Purpose: check Python files for potential programming errors or maintenance
19# hurdles. Run pylint to detect some potential mistakes and enforce PEP8
20# coding standards. If available, run mypy to perform static type checking.
21
22# We'll keep going on errors and report the status at the end.
23ret=0
Mohammad Azim Khan21798102018-07-06 00:41:08 +010024
Gilles Peskine56e99d62020-03-24 15:07:57 +010025if type python3 >/dev/null 2>/dev/null; then
26 PYTHON=python3
Simon Butchere30d03e2020-03-16 11:30:46 +000027else
Gilles Peskine56e99d62020-03-24 15:07:57 +010028 PYTHON=python
Simon Butchere30d03e2020-03-16 11:30:46 +000029fi
30
Gilles Peskineb13ed702020-12-11 00:58:48 +010031$PYTHON -m pylint -j 2 scripts/mbedtls_dev/*.py scripts/*.py tests/scripts/*.py || {
Gilles Peskine7be45512020-08-12 02:31:02 +020032 echo >&2 "pylint reported errors"
33 ret=1
34}
35
36# Check types if mypy is available
37if type mypy >/dev/null 2>/dev/null; then
38 echo
39 echo 'Running mypy ...'
40 mypy scripts/*.py tests/scripts/*.py ||
41 ret=1
42fi
43
44exit $ret