summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorDerrick Anderson <derrick@andersonwebstudio.com>2018-01-25 08:40:29 -0500
committerGitHub <noreply@github.com>2018-01-25 08:40:29 -0500
commitd45d8a16b3325f4d00a3a844c1946bd006288826 (patch)
treebebd786da3d6b3219cc59fa9101756b7b7b89818 /scripts
parent3918ed6c589a19bd385a6e566f07dc14d7484c49 (diff)
downloadchat-d45d8a16b3325f4d00a3a844c1946bd006288826.tar.gz
chat-d45d8a16b3325f4d00a3a844c1946bd006288826.tar.bz2
chat-d45d8a16b3325f4d00a3a844c1946bd006288826.zip
prereq check (#8151)
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/prereq-check.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/prereq-check.sh b/scripts/prereq-check.sh
new file mode 100755
index 000000000..1c9ae8405
--- /dev/null
+++ b/scripts/prereq-check.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+check_version()
+{
+ local version=$1 check=$2
+ local winner=$(echo -e "$version\n$check" | sed '/^$/d' | sort -nr | head -1)
+ [[ "$winner" = "$version" ]] && return 0
+ return 1
+}
+
+check_prereq()
+{
+ if [ ! $# == 3 ]; then
+ echo "Unable to determine '$1' version! Ensure that '$1' is in your path and try again." && exit 1
+ fi
+
+ local dependency=$1 required_version=$2 installed_version=$3
+
+ type $dependency >/dev/null 2>&1 || { echo >&2 "Mattermost requires '$dependency' but it doesn't appear to be installed. Aborting."; exit 1; }
+
+ if check_version $installed_version $required_version; then
+ echo "$dependency minimum requirement met. Required: $required_version, Found: $installed_version"
+ else
+ echo "WARNING! Mattermost did not find the minimum supported version of '$dependency' installed. Required: $required_version, Found: $installed_version"
+ echo "We highly recommend stopping installation and updating dependencies before continuing"
+ read -p "Enter Y to continue anyway (not recommended)." -n 1 -r
+ echo
+ if [[ ! $REPLY =~ ^[Yy]$ ]]
+ then
+ exit 1
+ fi
+ fi
+}
+
+echo "Checking prerequisites"
+
+REQUIREDNODEVERSION=8.9.0
+REQUIREDNPMVERSION=5.6.0
+REQUIREDGOVERSION=1.9.2
+REQUIREDDOCKERVERSION=17.0
+
+NODEVERSION=$(sed 's/v//' <<< $(node -v))
+NPMVERSION=$(npm -v)
+GOVERSION=$(sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,4\}[0-9][^.]\).*/\1/p' <<< $(go version))
+DOCKERVERSION=$(docker version --format '{{.Server.Version}}' | sed 's/[a-z-]//g')
+
+check_prereq 'node' $REQUIREDNODEVERSION $NODEVERSION
+check_prereq 'npm' $REQUIREDNPMVERSION $NPMVERSION
+check_prereq 'go' $REQUIREDGOVERSION $GOVERSION
+check_prereq 'docker' $REQUIREDDOCKERVERSION $DOCKERVERSION \ No newline at end of file