mvadkert / rpms / beakerlib

Forked from rpms/beakerlib 6 years ago
Clone
Blob Blame History Raw
From 8c099d741e243e5daa09d1e1674675badc5f3bf3 Mon Sep 17 00:00:00 2001
From: Dalibor Pospisil <dapospis@redhat.com>
Date: Thu, 19 Jun 2014 12:09:11 +0200
Subject: [PATCH 07/14] __INTERNAL_rlIsDistro: suppressed output of expr, speed
 optimization

---
 src/testing.sh | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/testing.sh b/src/testing.sh
index afa7554..6c57bfc 100644
--- a/src/testing.sh
+++ b/src/testing.sh
@@ -997,24 +997,23 @@ __INTERNAL_rlIsDistro(){
   echo $distro | grep -q "$1" || return 1
   shift
 
-  [ -z "$1" ] && return 0
+  [[ -z "$1" ]] && return 0
 
   local arg
   for arg in "$@"
   do
     # sanity check - version needs to consist of numbers/dots/<=>
-    expr match "$arg" '[<=>]*[0-9][0-9\.]*$' >/dev/null || return 1
+    [[ "$arg" =~ ^([\<=\>]*)([0-9][0-9\.]*)$ ]] || return 1
 
-    sign="$(echo $arg | grep -Eo '^[<=>]+')"
-    if [ -z "$sign" ]; then
-      if [ "$arg" == "$whole" ] || [ "$arg" == "$major" ]
+    sign="${BASH_REMATCH[1]}"
+    arg="${BASH_REMATCH[2]}"
+    if [[ -z "$sign" ]]; then
+      if [[ "$arg" == "$major" || "$arg" == "$whole" ]]
       then
         return 0
       fi
     else
-      # <=> match
-      arg="$(echo $arg | sed -r 's/^[<=>]+//')"
-      if expr index '.' $arg; then
+      if [[ "$arg" =~ \. ]]; then
         __INTERNAL_test_version "$whole" "$sign" "$arg"
       else
         __INTERNAL_test_version "$major" "$sign" "$arg"
-- 
1.9.3