Skip to content

Commit 038be7d

Browse files
author
Slyke
committed
Added simplified version checking. Added whiptail for docker version
1 parent 78ae80f commit 038be7d

File tree

1 file changed

+46
-30
lines changed

1 file changed

+46
-30
lines changed

menu.sh

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,9 @@ DOCKER_COMPOSE_OVERRIDE_YML=./compose-override.yml
1010

1111
# Minimum Software Versions
1212
COMPOSE_VERSION="3.6"
13-
REQ_DOCKER_VERSION_MAJOR=18
14-
REQ_DOCKER_VERSION_MINOR=2
15-
REQ_DOCKER_VERSION_BUILD=0
16-
17-
REQ_PYTHON_VERSION_MAJOR=3
18-
REQ_PYTHON_VERSION_MINOR=6
19-
REQ_PYTHON_VERSION_BUILD=9
20-
21-
REQ_PYYAML_VERSION_MAJOR=5
22-
REQ_PYYAML_VERSION_MINOR=3
23-
REQ_PYYAML_VERSION_BUILD=1
13+
REQ_DOCKER_VERSION=18.2.0
14+
REQ_PYTHON_VERSION=3.6.9
15+
REQ_PYYAML_VERSION_=5.3.1
2416

2517
declare -A cont_array=(
2618
[portainer]="Portainer"
@@ -121,6 +113,37 @@ function command_exists() {
121113
command -v "$@" > /dev/null 2>&1
122114
}
123115

116+
function minimum_version_check() {
117+
# minimum_version_check required_version current_major current_minor current_build
118+
# minimum_version_check "1.2.3" 1 2 3
119+
REQ_MIN_VERSION_MAJOR=$(echo "$1"| cut -d' ' -f 2 | cut -d'.' -f 1)
120+
REQ_MIN_VERSION_MINOR=$(echo "$1"| cut -d' ' -f 2 | cut -d'.' -f 2)
121+
REQ_MIN_VERSION_BUILD=$(echo "$1"| cut -d' ' -f 2 | cut -d'.' -f 3)
122+
123+
CURR_VERSION_MAJOR=$2
124+
CURR_VERSION_MINOR=$3
125+
CURR_VERSION_BUILD=$4
126+
127+
VERSION_GOOD="false"
128+
129+
if [ "${CURR_VERSION_MAJOR}" -ge $REQ_MIN_VERSION_MAJOR ]; then
130+
VERSION_GOOD="true"
131+
fi
132+
133+
if [ "${CURR_VERSION_MAJOR}" -ge $REQ_MIN_VERSION_MAJOR ] && \
134+
[ "${CURR_VERSION_MINOR}" -ge $REQ_MIN_VERSION_MINOR ]; then
135+
VERSION_GOOD="true"
136+
fi
137+
138+
if [ "${CURR_VERSION_MAJOR}" -ge $REQ_MIN_VERSION_MAJOR ] && \
139+
[ "${CURR_VERSION_MINOR}" -ge $REQ_MIN_VERSION_MINOR ] && \
140+
[ "${CURR_VERSION_BUILD}" -ge $REQ_MIN_VERSION_BUILD ]; then
141+
VERSION_GOOD="true"
142+
fi
143+
144+
echo "$VERSION_GOOD"
145+
}
146+
124147
function install_python3_and_deps() {
125148
if (whiptail --title "Python 3 and Dependencies" --yesno "Python 3 (v3.6.9) or later, PyYaml 5.3.1 and pip3 is required for compose-overrides.yml file to merge into the docker-compose.yml file. Install now?" 20 78); then
126149
sudo apt install -y python3-pip python3-dev
@@ -151,9 +174,7 @@ function do_python3_pip() {
151174
PYTHON_VERSION_MINOR=$(echo "$PYTHON_VERSION"| cut -d'.' -f 2)
152175
PYTHON_VERSION_BUILD=$(echo "$PYTHON_VERSION"| cut -d'.' -f 3)
153176

154-
if [ "${PYTHON_VERSION_MAJOR}" -eq $REQ_PYTHON_VERSION_MAJOR ] && \
155-
[ "${PYTHON_VERSION_MINOR}" -eq $REQ_PYTHON_VERSION_MINOR ] && \
156-
[ "${PYTHON_VERSION_BUILD}" -ge $REQ_PYTHON_VERSION_BUILD ]; then
177+
if [ "$(minimum_version_check $REQ_PYTHON_VERSION $PYTHON_VERSION_MAJOR $PYTHON_VERSION_MINOR $PYTHON_VERSION_BUILD )" == "true" ]; then
157178
PYTHON_VERSION_GOOD="true"
158179
else
159180
echo "Python is outdated."
@@ -166,9 +187,7 @@ function do_python3_pip() {
166187
PYYAML_VERSION_MINOR=$(echo "$PYYAML_VERSION"| cut -d'.' -f 2)
167188
PYYAML_VERSION_BUILD=$(echo "$PYYAML_VERSION"| cut -d'.' -f 3)
168189

169-
if [ "${PYYAML_VERSION_MAJOR}" -ge $REQ_PYYAML_VERSION_MAJOR ] && \
170-
[ "${PYYAML_VERSION_MINOR}" -ge $REQ_PYYAML_VERSION_MINOR ] && \
171-
[ "${PYYAML_VERSION_BUILD}" -ge $REQ_PYYAML_VERSION_BUILD ]; then
190+
if [ "$(minimum_version_check $REQ_PYYAML_VERSION $PYYAML_VERSION_MAJOR $PYYAML_VERSION_MINOR $PYYAML_VERSION_BUILD )" == "true" ]; then
172191
PYYAML_VERSION_GOOD="true"
173192
else
174193
echo "PyYaml is outdated."
@@ -268,20 +287,17 @@ fi
268287
#---------------------------------------------------------------------------------------------------
269288
# Docker updates
270289
echo "checking docker version"
271-
SERVER_VERSION=$(docker version -f "{{.Server.Version}}")
272-
SERVER_VERSION_MAJOR=$(echo "$SERVER_VERSION"| cut -d'.' -f 1)
273-
SERVER_VERSION_MINOR=$(echo "$SERVER_VERSION"| cut -d'.' -f 2)
274-
SERVER_VERSION_BUILD=$(echo "$SERVER_VERSION"| cut -d'.' -f 3)
275-
276-
if [ "${SERVER_VERSION_MAJOR}" -ge $REQ_DOCKER_VERSION_MAJOR ] && \
277-
[ "${SERVER_VERSION_MINOR}" -ge $REQ_DOCKER_VERSION_MINOR ] && \
278-
[ "${SERVER_VERSION_BUILD}" -ge $REQ_DOCKER_VERSION_BUILD ]; then
279-
echo "Docker version >= 18.2.0. You are good to go."
290+
DOCKER_VERSION=$(docker version -f "{{.Server.Version}}")
291+
DOCKER_VERSION_MAJOR=$(echo "$DOCKER_VERSION"| cut -d'.' -f 1)
292+
DOCKER_VERSION_MINOR=$(echo "$DOCKER_VERSION"| cut -d'.' -f 2)
293+
DOCKER_VERSION_BUILD=$(echo "$DOCKER_VERSION"| cut -d'.' -f 3)
294+
295+
if [ "$(minimum_version_check $REQ_DOCKER_VERSION $DOCKER_VERSION_MAJOR $DOCKER_VERSION_MINOR $DOCKER_VERSION_BUILD )" == "true" ]; then
296+
echo "Docker version >= $REQ_DOCKER_VERSION. You are good to go."
280297
else
281-
echo ""
282-
echo "Docker version less than 18.02.0 consider upgrading or you may experience issues"
283-
echo "Upgrade by typing: 'sudo apt upgrade docker docker-compose'"
284-
sleep 2
298+
if (whiptail --title "Docker and Docker-Compose Version Issue" --yesno "Docker version is currently $DOCKER_VERSION which is less than $REQ_DOCKER_VERSION consider upgrading or you may experience issues. You can manually upgrade by typing 'sudo apt upgrade docker docker-compose'. Attempt to upgrade now?" 20 78); then
299+
sudo apt upgrade docker docker-compose
300+
fi
285301
fi
286302

287303
#---------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)