From 35985c4467c6023276ce735695900053257eed2c Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Wed, 6 Nov 2013 14:07:52 +0000
Subject: [PATCH] Added test_command_install for installing a package if a
 command is missing.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4330 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair-cn/SCRIPTS/utils.bash | 54 ++++++++++++++++-------------------
 1 file changed, 25 insertions(+), 29 deletions(-)

diff --git a/openair-cn/SCRIPTS/utils.bash b/openair-cn/SCRIPTS/utils.bash
index ee871ce9c2..b84bc64d87 100755
--- a/openair-cn/SCRIPTS/utils.bash
+++ b/openair-cn/SCRIPTS/utils.bash
@@ -98,35 +98,25 @@ set_openair() {
     declare -i index
     length_path=${#path}
 
-    index=`echo $path | grep -b -o 'targets' | cut -d: -f1`
-    #echo ${path%$token*}
-    if [[ $index -lt $length_path  && index -gt 0 ]]
-       then
-           declare -x OPENAIR_DIR
-           index=`expr $index - 1`
-           openair_path=`echo $path | cut -c1-$index`
-           #openair_path=`echo ${path:0:$index}`
-           export OPENAIR_DIR=$openair_path
-           export OPENAIR1_DIR=$openair_path/openair1
-           export OPENAIR2_DIR=$openair_path/openair2
-           export OPENAIR3_DIR=$openair_path/openair3
-           export OPENAIR_TARGETS=$openair_path/targets
-           return 0
-    fi
-    index=`echo $path | grep -b -o 'openair3' | cut -d: -f1`
-    if [[ $index -lt $length_path  && index -gt 0 ]]
-       then
-           declare -x OPENAIR_DIR
-           index=`expr $index - 1`
-           openair_path=`echo $path | cut -c1-$index`
-           #openair_path=`echo ${path:0:$index}`
-           export OPENAIR_DIR=$openair_path
-           export OPENAIR1_DIR=$openair_path/openair1
-           export OPENAIR2_DIR=$openair_path/openair2
-           export OPENAIR3_DIR=$openair_path/openair3
-           export OPENAIR_TARGETS=$openair_path/targets
-           return 0
-    fi
+    for i in 'openair1' 'openair2' 'openair3' 'openair-cn' 'targets'
+    do
+        index=`echo $path | grep -b -o $i | cut -d: -f1`
+        #echo ${path%$token*}
+        if [[ $index -lt $length_path  && index -gt 0 ]]
+           then
+               declare -x OPENAIR_DIR
+               index=`expr $index - 1`
+               openair_path=`echo $path | cut -c1-$index`
+               #openair_path=`echo ${path:0:$index}`
+               export OPENAIR_DIR=$openair_path
+               export OPENAIR_HOME=$openair_path
+               export OPENAIR1_DIR=$openair_path/openair1
+               export OPENAIR2_DIR=$openair_path/openair2
+               export OPENAIR3_DIR=$openair_path/openair3
+               export OPENAIR_TARGETS=$openair_path/targets
+               return 0
+           fi
+    done
     return -1
 }
 
@@ -182,6 +172,12 @@ assert() {
     fi
 }
 
+test_command_install() {
+  # usage: test_command_install searched_binary package_to_be_installed_if_binary_not_found
+  command -v $1 >/dev/null 2>&1 || { echo_warning "Program $1 is not installed. Trying installing it." >&2; apt-get install $2 -y; command -v $1 >/dev/null 2>&1 || { echo_error "Program $1 is not installed. Aborting." >&2; exit 1; };}
+  echo_success "$1 available"
+}
+
 start_openswitch_daemon() {
   rmmod -s bridge
   if [[ -e "/lib/modules/`uname -r`/extra/openvswitch.ko" ]] ; then
-- 
GitLab