copy script/static-checks folder from tf-a-ci-scripts

This is a complete copy of the folder [1], based on working dir
from commit [2]. Some checks DO NOT apply to TF-M project, but we
introduce the code as it is from TF-A project for completeness and
then further commits will remove/change relevant tests.

[1] https://git.trustedfirmware.org/ci/tf-a-ci-scripts.git/tree/script/static-checks
[2] https://git.trustedfirmware.org/ci/tf-a-ci-scripts.git/commit/?id=a16c8e2b37e2a8446e586f45c3e9b406496ad7b8

Change-Id: I024c30dc59caa6e635fcd43b1a30086231b29bc3
Signed-off-by: Leonardo Sandoval <leonardo.sandoval@linaro.org>
diff --git a/script/static-checks/static-checks-coding-style-entire-src-tree.sh b/script/static-checks/static-checks-coding-style-entire-src-tree.sh
new file mode 100755
index 0000000..1d066ae
--- /dev/null
+++ b/script/static-checks/static-checks-coding-style-entire-src-tree.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+# Check the coding style of the entire source tree against the Linux coding
+# style using the checkpatch.pl script from the Linux kernel source tree.
+
+TEST_CASE="Coding style of entire source tree"
+
+echo "# Check coding style of the entire source tree"
+
+LOG_FILE=$(mktemp -t coding-style-check.XXXX)
+
+# Passing V=1 to 'make checkcodebase' will make it generate a per-file summary
+CHECKPATCH=$CI_ROOT/script/static-checks/checkpatch.pl \
+  make checkcodebase V=1 &> "$LOG_FILE"
+RES=$?
+
+if [[ "$RES" == 0 ]]; then
+  # Ignore warnings, only mark the test as failed if there are errors.
+  # We'll get as many 'total:' lines as the number of files in the source tree.
+  # Search for lines that show a non-null number of errors.
+  grep --quiet 'total: [^0][0-9]* errors' "$LOG_FILE"
+  # grep returns 0 when it founds the pattern, which means there is an error
+  RES=$?
+else
+  RES=0
+fi
+
+if [[ "$RES" == 0 ]]; then
+  EXIT_VALUE=1
+else
+  EXIT_VALUE=0
+fi
+
+echo >> "$LOG_TEST_FILENAME"
+echo "****** $TEST_CASE ******" >> "$LOG_TEST_FILENAME"
+echo >> "$LOG_TEST_FILENAME"
+if [[ "$EXIT_VALUE" == 0 ]]; then
+  echo "Result : SUCCESS" >> "$LOG_TEST_FILENAME"
+else
+  echo "Result : FAILURE" >> "$LOG_TEST_FILENAME"
+fi
+# Always print the script output to show the warnings
+echo >> "$LOG_TEST_FILENAME"
+cat "$LOG_FILE" >> "$LOG_TEST_FILENAME"
+echo >> "$LOG_TEST_FILENAME"
+
+rm -f "$LOG_FILE"
+
+exit "$EXIT_VALUE"