Merge "Move openflowplugin Sonar scan to Sonarcloud"
[releng/builder.git] / jjb / packaging / install-rpm.sh
index 7f72f0683a67badeff0f5b8f625e138b7bf3c888..7c011ad646f46e7cc69a36448d2052e124e47169 100644 (file)
@@ -6,20 +6,49 @@
 #   -o pipefail: Fail on errors in scripts this calls, give stacktrace
 set -ex -o pipefail
 
-# Update mirror list to avoid slow/hung one
-sudo yum update -y yum-plugin-fastestmirror
+# Use local RPM in build-out dir if URL not passed
+URL=${URL:-"$HOME/rpmbuild/RPMS/noarch/*.rpm"}
 
-# Install ODL from .rpm link or .repo url
-if [[ $URL == *.rpm ]]
-then
-  sudo yum install -y "$URL"
-elif [[ $URL == *.repo ]]
-then
-  # shellcheck disable=SC2154
-  repo_file="${{URL##*/}}"
-  sudo curl --silent -o /etc/yum.repos.d/"$repo_file" "$URL"
-  sudo yum install -y opendaylight
+if [ -f /usr/bin/yum ]; then
+  # Update mirror list to avoid slow/hung one
+  sudo yum update -y yum-plugin-fastestmirror
+
+  # Install ODL from RPM path, RPM URL or .repo file url
+  # NB: Paths must be anchored at root
+  if [[ $URL == /*  ]]; then
+    # If path is globbed (/path/to/*.rpm), expand it
+    path=$(sudo find / -wholename "$URL")
+    sudo yum install -y "$path"
+  elif [[ $URL == *.rpm ]]; then
+    sudo yum install -y "$URL"
+  elif [[ $URL == *.repo ]]; then
+    # shellcheck disable=SC2154
+    repo_file="${URL##*/}"
+    sudo curl --silent -o /etc/yum.repos.d/"$repo_file" "$URL"
+    sudo yum install -y opendaylight
+  else
+    echo "URL is not a link to .rpm or .repo"
+    exit 1
+  fi
+elif [ -f /usr/bin/zypper ]; then
+  # Install ODL from RPM path, RPM URL or .repo file url
+  # NB: Paths must be anchored at root
+  if [[ $URL == /*  ]]; then
+    # If path is globbed (/path/to/*.rpm), expand it
+    path=$(sudo find /root -wholename "$URL")
+    sudo zypper -n --no-gpg-checks install "$path"
+  elif [[ $URL == *.rpm ]]; then
+    sudo zypper -n --no-gpg-checks install "$URL"
+  elif [[ $URL == *.repo ]]; then
+    # shellcheck disable=SC2154
+    repo_file="${URL##*/}"
+    sudo curl --silent -o /etc/zypp/repos.d/"$repo_file" "$URL"
+    sudo zypper -n --no-gpg-checks install opendaylight
+  else
+    echo "URL is not a link to .rpm or .repo"
+    exit 1
+  fi
 else
-  echo "URL is not a link to .rpm or .repo"
+  echo "The package manager is not supported (not yum or zypper)"
   exit 1
 fi