summaryrefslogtreecommitdiffstats
path: root/coverity-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'coverity-install.sh')
-rwxr-xr-xcoverity-install.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/coverity-install.sh b/coverity-install.sh
new file mode 100755
index 000000000..99d2f2fea
--- /dev/null
+++ b/coverity-install.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# Coverity installation script
+#
+# Copyright: SPDX-License-Identifier: GPL-3.0-or-later
+#
+# Author: Pavlos Emm. Katsoulakis (paul@netdata.cloud)
+
+token="${COVERITY_SCAN_TOKEN}"
+([ -z "${token}" ] && [ -f .coverity-token ]) && token="$(<.coverity-token)"
+if [ -z "${token}" ]; then
+ echo >&2 "Save the coverity token to .coverity-token or export it as COVERITY_SCAN_TOKEN."
+ exit 1
+fi
+
+covbuild="$(which cov-build 2>/dev/null || command -v cov-build 2>/dev/null)"
+([ -z "${covbuild}" ] && [ -f .coverity-build ]) && covbuild="$(<.coverity-build)"
+if [ ! -z "${covbuild}" ]; then
+ echo >&2 "Coverity already installed, nothing to do!"
+ exit 0
+fi
+
+echo >&2 "Installing coverity..."
+WORKDIR="/opt/coverity-source"
+mkdir -p "${WORKDIR}"
+
+curl -SL --data "token=${token}&project=${REPOSITORY}" https://scan.coverity.com/download/linux64 > "${WORKDIR}/coverity_tool.tar.gz"
+if [ -f "${WORKDIR}/coverity_tool.tar.gz" ]; then
+ tar -x -C "${WORKDIR}" -f "${WORKDIR}/coverity_tool.tar.gz"
+ sudo mv "${WORKDIR}/cov-analysis-linux64-2017.07" /opt/coverity
+ export PATH=${PATH}:/opt/coverity/bin/
+else
+ echo "Failed to download coverity tool tarball!"
+fi
+
+# Validate the installation
+covbuild="$(which cov-build 2>/dev/null || command -v cov-build 2>/dev/null)"
+if [ -z "$covbuild" ]; then
+ echo "Failed to install coverity!"
+ exit 1
+else
+ echo >&2 "Coverity scan installed!"
+fi