FIX: Don't print error message from which when checking docker install (#549)
authorJoel Uckelman <uckelman@nomic.net>
Fri, 6 Aug 2021 01:22:46 +0000 (02:22 +0100)
committerGitHub <noreply@github.com>
Fri, 6 Aug 2021 01:22:46 +0000 (11:22 +1000)
'which docker.io || which docker' prints an error message when docker.io
is missing, which will be the case on any non-Ubuntu-based system. This
is confusing and not actually an error unless _both_ are missing.

discourse-setup

index e9537f29e0e14f499c40f5e36162ec4926928182..3548feb19311489da7c894bda4c9ffe1bb66177e 100755 (executable)
@@ -123,15 +123,16 @@ check_IP_match() {
 ## Do we have docker?
 ##
 check_and_install_docker () {
-  docker_path=`which docker.io || which docker`
-  if [ -z $docker_path ]; then
-    read  -p "Docker not installed. Enter to install from https://get.docker.com/ or Ctrl+C to exit"
+  if ! which docker.io docker 2>/dev/null ; then
+    echo Failed to find docker.io or docker on your PATH.
+    read -p "Enter to install Docker from https://get.docker.com/ or Ctrl+C to exit"
     curl https://get.docker.com/ | sh
-  fi
-  docker_path=`which docker.io || which docker`
-  if [ -z $docker_path ]; then
-    echo Docker install failed. Quitting.
-    exit
+
+    if ! which docker.io docker 2>/dev/null ; then
+      echo Still failed to find docker.io or docker on your PATH.
+      echo Docker install failed. Quitting.
+      exit
+    fi
   fi
 }