diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2023-01-04 22:38:41 +0100 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2023-01-04 22:45:00 +0100 |
commit | f43efe5a65db0dc4bac68fe79cd6c463c74ef0a2 (patch) | |
tree | b9daf84294ddbd260b71c63388f4c36b81ef2aac /tools | |
parent | 8da3884afce7c03368ae2ed67d1e40fced9225a4 (diff) | |
download | weechat-f43efe5a65db0dc4bac68fe79cd6c463c74ef0a2.zip |
core: add script check_scripts.sh
This script is now used in CI to check all shell scripts (*.sh) and Python
scripts (*.py) that are in git repository.
Tools used:
- shell scripts: shellcheck
- Python scripts: flake8 + pylint + bandit
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/check_scripts.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tools/check_scripts.sh b/tools/check_scripts.sh new file mode 100755 index 000000000..52845e8df --- /dev/null +++ b/tools/check_scripts.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Copyright (C) 2023 Sébastien Helleu <flashcode@flashtux.org> +# +# This file is part of WeeChat, the extensible chat client. +# +# WeeChat is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# WeeChat is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with WeeChat. If not, see <https://www.gnu.org/licenses/>. +# + +# +# Check shell and Python scripts in WeeChat git repository using these tools: +# - shell scripts: shellcheck +# - Python scripts: flake8 + pylint + bandit +# + +# exit on any error +set -e + +# check git repository +ROOT_DIR=$(git rev-parse --show-toplevel) +cd "${ROOT_DIR}" + +SHELL_SCRIPTS=$(git ls-files "*.sh") +PYTHON_SCRIPTS=$(git ls-files "*.py") + +# display commands +set -x + +# check shell scripts +for script in $SHELL_SCRIPTS; do + shellcheck "${ROOT_DIR}/$script" +done + +# check Python scripts +for script in $PYTHON_SCRIPTS; do + flake8 --max-line-length=100 --builtins=_ "${ROOT_DIR}/$script" + pylint --additional-builtins=_ "${ROOT_DIR}/$script" + bandit "${ROOT_DIR}/$script" +done |