#!/usr/bin/env bash # # Various code quality tests to avoid regressions in code quality. # # Copyright (C) 2023,2024 Denis 'GNUtoo' Carikli # # This program 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. # # This program 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 this program. If not, see . report() { ret=$? message="$1" if [ ${ret} -eq 0 ] ; then echo "[ OK ] ${message}" else echo "[ !! ] ${message} failed" exit ${ret} fi } run_shellcheck() { for path in "$@" ; do shellcheck -x "${path}" ; report "${path}" done } printf "+---------------------+\n" printf "| Running lint tests: |\n" printf "+---------------------+\n" run_shellcheck \ autogen.sh \ build \ download \ modify \ update \ resources/packages/coreboot/distclean \ resources/packages/descriptors/distclean \ resources/packages/grub/distclean \ resources/packages/i945-thinkpads-install-utilities/clean \ resources/packages/i945-thinkpads-install-utilities/distclean \ resources/packages/i945-thinkpads-install-utilities/download \ resources/packages/i945-thinkpads-install-utilities/module \ resources/packages/ich9utils/distclean \ resources/packages/memtest86plus/distclean \ resources/packages/payloads/distclean \ resources/packages/rom_images/distclean \ resources/packages/roms/distclean \ resources/packages/roms/download \ resources/packages/roms/test \ resources/packages/seabios/distclean \ resources/packages/src/distclean \ resources/packages/u-boot-libre/distclean \ resources/packages/website/distclean \ resources/scripts/misc/guix.sh \ resources/scripts/tasks/distclean.sh \ tests/checkpatch \ tests/distclean \ tests/lint \ website/build.sh \ website/check.sh printf "+---------------------+\n" printf "| Lint tests done |\n" printf "+---------------------+\n"