xci: install-ansible.sh: Fix distribution detection 09/43809/2
authorMarkos Chandras <mchandras@suse.de>
Mon, 2 Oct 2017 06:39:26 +0000 (07:39 +0100)
committerMarkos Chandras <mchandras@suse.de>
Mon, 2 Oct 2017 06:46:50 +0000 (07:46 +0100)
Relying on the installed package manager to detect the distribution
is not reliable since it's possible to install multiple package managers
at the same time. As such, lets simply use the information in the
os-release files.

Change-Id: Ic170d2aee1398d5c82403c3469365822bf053de7
Signed-off-by: Markos Chandras <mchandras@suse.de>
xci/file/install-ansible.sh

index 85d02d0..ca7763a 100644 (file)
@@ -14,9 +14,10 @@ CHECK_CMD_PKGS=(
     python-devel
 )
 
-# Check zypper before apt-get in case zypper-aptitude
-# is installed
-if [ -x '/usr/bin/zypper' ]; then
+source /etc/os-release || source /usr/lib/os-release
+
+case ${ID,,} in
+    *suse)
     OS_FAMILY="Suse"
     INSTALLER_CMD="sudo -H -E zypper install -y"
     CHECK_CMD="zypper search --match-exact --installed"
@@ -39,7 +40,9 @@ if [ -x '/usr/bin/zypper' ]; then
     if $(${CHECK_CMD} patterns-openSUSE-minimal_base-conflicts &> /dev/null); then
         sudo -H zypper remove -y patterns-openSUSE-minimal_base-conflicts
     fi
-elif [ -x '/usr/bin/apt-get' ]; then
+    ;;
+
+    ubuntu|debian)
     OS_FAMILY="Debian"
     INSTALLER_CMD="sudo -H -E apt-get -y install"
     CHECK_CMD="dpkg -l"
@@ -56,7 +59,9 @@ elif [ -x '/usr/bin/apt-get' ]; then
             )
     EXTRA_PKG_DEPS=()
     sudo apt-get update
-elif [ -x '/usr/bin/dnf' ] || [ -x '/usr/bin/yum' ]; then
+    ;;
+
+    rhel|centos|fedora)
     OS_FAMILY="RedHat"
     PKG_MANAGER=$(which dnf || which yum)
     INSTALLER_CMD="sudo -H -E ${PKG_MANAGER} -y install"
@@ -75,9 +80,10 @@ elif [ -x '/usr/bin/dnf' ] || [ -x '/usr/bin/yum' ]; then
     )
     sudo yum update --assumeno
     EXTRA_PKG_DEPS=()
-else
-    echo "ERROR: Supported package manager not found.  Supported: apt,yum,zypper"
-fi
+   ;;
+
+    *) echo "ERROR: Supported package manager not found.  Supported: apt,yum,zypper"; exit 1;;
+esac
 
 if ! $(python --version &>/dev/null); then
     ${INSTALLER_CMD} ${PKG_MAP[python]}