OPENDEV: Adding powervm repositories to OpenStack
[infra/cicd.git] / jjb / cloud-infra / scripts / cloud-infra-shellcheck.sh
1 #!/bin/bash
2
3 # ============LICENSE_START=======================================================
4 #  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may 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,
14 # WITHOUT 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.
17 #
18 # SPDX-License-Identifier: Apache-2.0
19 # ============LICENSE_END=========================================================
20
21 # install dependencies
22 sudo apt update > /dev/null 2>&1
23 sudo apt remove -y -q=3 shellcheck > /dev/null 2>&1
24
25 # apt doesn't have the shellcheck version v0.7.0 so we install
26 # it from snap
27 sudo snap install shellcheck
28 SHELLCHECK_EXECUTABLE=/snap/bin/shellcheck
29 echo "Info: Using shellcheck version $(${SHELLCHECK_EXECUTABLE} --version)"
30
31 cd $WORKSPACE
32 echo "Info: Run shellcheck on bash scripts"
33 echo "----------------------------------------------------"
34
35 # set exit_code so we exit ourselves rather than shellcheck bailing out without
36 # verifying all the bash scripts
37 declare -i exit_code=0
38
39 # lint the bash scripts
40 for shell_script in $(find ${WORKSPACE}/ -type f -name *.sh); do
41   echo "--> Checking '${shell_script}' shell script..."
42   "${SHELLCHECK_EXECUTABLE}" --color=never --source-path="${WORKSPACE}" --external-sources \
43       --format=tty ${shell_script}
44   lint_exit_code=$?
45   if [[ $lint_exit_code != 0 ]]; then
46     exit_code=$lint_exit_code
47   else
48     echo [OK]
49   fi
50   echo
51 done
52 echo "----------------------------------------------------"
53 echo "Info: Done"
54 exit $exit_code
55
56 # vim: set ts=2 sw=2 expandtab: