50 lines
1.4 KiB
Diff
50 lines
1.4 KiB
Diff
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
|
|
|