blob: 48ea0fcb2b1d49bb7c2a2b84579b45e32315fa35 [file] [log] [blame]
#!/bin/bash
# ============LICENSE_START=======================================================
# Copyright (C) 2019 The Nordix Foundation. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
# install dependencies
sudo apt update > /dev/null 2>&1
sudo apt remove -y -q=3 shellcheck > /dev/null 2>&1
# apt doesn't have the shellcheck version v0.7.0 so we install
# it from snap
sudo snap install shellcheck
SHELLCHECK_EXECUTABLE=/snap/bin/shellcheck
echo "Info: Using shellcheck version $(${SHELLCHECK_EXECUTABLE} --version)"
cd $WORKSPACE
echo "Info: Run shellcheck on bash scripts"
echo "----------------------------------------------------"
# set exit_code so we exit ourselves rather than shellcheck bailing out without
# verifying all the bash scripts
declare -i exit_code=0
# lint the bash scripts
for shell_script in $(find ${WORKSPACE}/ -type f -name *.sh); do
echo "--> Checking '${shell_script}' shell script..."
"${SHELLCHECK_EXECUTABLE}" --color=never --source-path="${WORKSPACE}" --external-sources \
--format=tty ${shell_script}
lint_exit_code=$?
if [[ $lint_exit_code != 0 ]]; then
exit_code=$lint_exit_code
else
echo [OK]
fi
echo
done
echo "----------------------------------------------------"
echo "Info: Done"
exit $exit_code
# vim: set ts=2 sw=2 expandtab: