Mohammad Azim Khan | 2179810 | 2018-07-06 00:41:08 +0100 | [diff] [blame] | 1 | #! /usr/bin/env sh |
| 2 | |
Bence Szépkúti | 1e14827 | 2020-08-07 13:07:28 +0200 | [diff] [blame] | 3 | # Copyright The Mbed TLS Contributors |
Bence Szépkúti | c7da1fe | 2020-05-26 01:54:15 +0200 | [diff] [blame] | 4 | # 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 Peskine | 7be4551 | 2020-08-12 02:31:02 +0200 | [diff] [blame] | 17 | |
| 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. |
| 23 | ret=0 |
Mohammad Azim Khan | 2179810 | 2018-07-06 00:41:08 +0100 | [diff] [blame] | 24 | |
Gilles Peskine | 56e99d6 | 2020-03-24 15:07:57 +0100 | [diff] [blame] | 25 | if type python3 >/dev/null 2>/dev/null; then |
| 26 | PYTHON=python3 |
Simon Butcher | e30d03e | 2020-03-16 11:30:46 +0000 | [diff] [blame] | 27 | else |
Gilles Peskine | 56e99d6 | 2020-03-24 15:07:57 +0100 | [diff] [blame] | 28 | PYTHON=python |
Simon Butcher | e30d03e | 2020-03-16 11:30:46 +0000 | [diff] [blame] | 29 | fi |
| 30 | |
Gilles Peskine | b13ed70 | 2020-12-11 00:58:48 +0100 | [diff] [blame^] | 31 | $PYTHON -m pylint -j 2 scripts/mbedtls_dev/*.py scripts/*.py tests/scripts/*.py || { |
Gilles Peskine | 7be4551 | 2020-08-12 02:31:02 +0200 | [diff] [blame] | 32 | echo >&2 "pylint reported errors" |
| 33 | ret=1 |
| 34 | } |
| 35 | |
| 36 | # Check types if mypy is available |
| 37 | if type mypy >/dev/null 2>/dev/null; then |
| 38 | echo |
| 39 | echo 'Running mypy ...' |
| 40 | mypy scripts/*.py tests/scripts/*.py || |
| 41 | ret=1 |
| 42 | fi |
| 43 | |
| 44 | exit $ret |