]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
bootstrap: add support for *suse distributions 340/head
authorAbhishek Lekshmanan <abhishek@suse.com>
Wed, 15 Jan 2020 19:34:17 +0000 (20:34 +0100)
committerAbhishek Lekshmanan <abhishek@suse.com>
Wed, 15 Jan 2020 19:34:46 +0000 (20:34 +0100)
Also reformatted the bootstrap script to parse /etc/os-release instead, so that
more distro/pkg manager support could be added at a later point in time and
fixed the error message

Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
bootstrap

index 2c0f209d0e477e6d7af2dadf9d33cd8a3784c8d3..8434767a7ff569fd3f44b888224cf97d85855248 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -3,39 +3,60 @@ set -e
 
 virtualenv="virtualenv"
 declare -a packages
-if [ -f /etc/debian_version ]; then
-    packages=(debianutils python3-pip python3-virtualenv python3-dev libevent-dev libffi-dev libxml2-dev libxslt-dev zlib1g-dev)
-    for package in ${packages[@]}; do
-        if [ "$(dpkg --status -- $package 2>/dev/null|sed -n 's/^Status: //p')" != "install ok installed" ]; then
-            # add a space after old values
-            missing="${missing:+$missing }$package"
+source /etc/os-release
+
+case "$ID" in
+    debian|ubuntu|devuan)
+        packages=(debianutils python3-pip python3-virtualenv python3-dev libevent-dev libffi-dev libxml2-dev libxslt-dev zlib1g-dev)
+        for package in ${packages[@]}; do
+            if [ "$(dpkg --status -- $package 2>/dev/null|sed -n 's/^Status: //p')" != "install ok installed" ]; then
+                # add a space after old values
+                missing="${missing:+$missing }$package"
+            fi
+        done
+
+        if [ -n "$missing" ]; then
+            echo "$0: missing required DEB packages. Installing via sudo." 1>&2
+            sudo apt-get -y install $missing
         fi
-    done
-
-    if [ -n "$missing" ]; then
-        echo "$0: missing required DEB packages. Installing via sudo." 1>&2
-        sudo apt-get -y install $missing
-    fi
-elif [ -f /etc/redhat-release ]; then
-    packages=(which python3-virtualenv python36-devel libevent-devel libffi-devel libxml2-devel libxslt-devel zlib-devel)
-    for package in ${packages[@]}; do
-        # When the package is python36-devel we change it to python3-devel on Fedora
-        if [[ ${package} == "python36-devel" && -f /etc/fedora-release ]]; then
+        ;;
+    centos|fedora|rhel|ol|virtuozzo)
+
+        packages=(which python3-virtualenv python36-devel libevent-devel libffi-devel libxml2-devel libxslt-devel zlib-devel)
+        for package in ${packages[@]}; do
+            # When the package is python36-devel we change it to python3-devel on Fedora
+            if [[ ${package} == "python36-devel" && -f /etc/fedora-release ]]; then
                 package=python36
+            fi
+            if [ "$(rpm -qa $package 2>/dev/null)" == "" ]; then
+                missing="${missing:+$missing }$package"
+            fi
+        done
+
+        if [ -n "$missing" ]; then
+            echo "$0: Missing required RPM packages: ${missing}." 1>&2
+            sudo yum -y install $missing
         fi
-        if [ "$(rpm -qa $package 2>/dev/null)" == "" ]; then
-            missing="${missing:+$missing }$package"
-        fi
-    done
-
-    if [ -n "$missing" ]; then
-        echo "$0: Missing required RPM packages: ${missing}." 1>&2
-        sudo yum -y install $missing
-    fi
-else
-    echo "s3-tests can only be run on Red Hat, Centos, Fedora, Ubunutu, or Debian platforms"
-    exit 1
-fi
+        ;;
+    opensuse*|suse|sles)
+
+        packages=(which python3-virtualenv python3-devel libev-devel libffi-devel libxml2-devel libxslt-devel zlib-devel)
+        for package in ${packages[@]}; do
+            if [ "$(rpm -qa $package 2>/dev/null)" == "" ]; then
+                missing="${missing:+$missing }$package"
+            fi
+            if [ -n "$missing" ]; then
+                echo "$0: Missing required RPM packages: ${missing}." 1>&2
+                sudo zypper --non-interactive install --no-recommends $missing
+            fi
+        done
+
+        ;;
+    *)
+        echo "Bootstrap script does not support this distro yet, consider adding the packages"
+        exit 1
+esac
+
 
 # s3-tests only works on python 3.6 not newer versions of python3
 ${virtualenv} --python=$(which python3.6) --no-site-packages --distribute virtualenv