summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2017-10-02 07:39:26 +0100
committerMarkos Chandras <mchandras@suse.de>2017-10-02 07:46:50 +0100
commit2cb04a2e384e3e25d852616cb9e8f3b355f6fb2d (patch)
tree0d5ab33cd00aa66e1b4d3ea7923807688413307c
parent28436eaa0771bd9fb290814960c7b74b2d928696 (diff)
xci: install-ansible.sh: Fix distribution detection
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>
-rw-r--r--xci/file/install-ansible.sh22
1 files changed, 14 insertions, 8 deletions
diff --git a/xci/file/install-ansible.sh b/xci/file/install-ansible.sh
index 85d02d09..ca7763ad 100644
--- a/xci/file/install-ansible.sh
+++ b/xci/file/install-ansible.sh
@@ -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]}