[sr-dev] git:master: kamctl: more auto-discovery for sercmd

Daniel-Constantin Mierla miconda at gmail.com
Mon Sep 20 11:06:32 CEST 2010


Module: sip-router
Branch: master
Commit: cff8540d95c53ee3972205e838f4528f67f9357b
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=cff8540d95c53ee3972205e838f4528f67f9357b

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Mon Sep 20 11:04:46 2010 +0200

kamctl: more auto-discovery for sercmd

- try locations like same dir with kamctl, or ../sercmd/ in case is run
  from sources
- default names for sercmd commands are 'sercmd' and 'sercmd_mi' to
  match tool name as ser is another application, old names can still be
  used

---

 utils/kamctl/kamctl        |   41 ++++++++++++++++++++++++++++++++++-------
 utils/kamctl/kamctl.ser    |   12 ++++--------
 utils/kamctl/kamctl.ser_mi |   10 +++-------
 3 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/utils/kamctl/kamctl b/utils/kamctl/kamctl
index 09a0fb8..e5252a5 100755
--- a/utils/kamctl/kamctl
+++ b/utils/kamctl/kamctl
@@ -6,6 +6,9 @@
 #
 #===================================================================
 
+### version for this script
+VERSION='3.1.0'
+
 PATH=$PATH:/usr/local/sbin/
 
 # for testing only, please don't enable this in production environments
@@ -36,9 +39,6 @@ if [ -z "$ETCDIR" ] ; then
 	ETCDIR="/usr/local/etc/kamailio"
 fi
 
-### version for this script
-VERSION='$Revision$'
-
 if [ -z "$MYDIR" ] ; then
 	MYDIR=`dirname $0`
 fi
@@ -50,6 +50,33 @@ if [ -z "$MYLIBDIR" ] ; then
 	fi
 fi
 
+# locate sercmd
+if [ -z "$SERCMD" ] ; then
+	# try same dir as kamctl
+	SERCMD="$MYDIR/sercmd"
+	if [ ! -f "$SERCMD" -o ! -x "$SERCMD" ] ; then
+		# try standard location installed from sources
+		SERCMD="/usr/local/sbin/sercmd"
+		if [ ! -f "$SERCMD" -o ! -x "$SERCMD" ] ; then
+			# try source tree location
+			SERCMD="$MYDIR/../sercmd/sercmd"
+			if [ ! -f "$SERCMD" -o ! -x "$SERCMD" ] ; then
+				# try locate it with which
+				SERCMD=`which sercmd`
+				if [ ! -f "$SERCMD" -o ! -x "$SERCMD" ] ; then
+					merr "sercmd tool not found"
+					exit -1;
+				fi
+			fi
+		fi
+	fi
+else
+	if [ ! -f "$SERCMD" -o ! -x "$SERCMD" ] ; then
+		merr "SERCMD does not point to an executable file"
+		exit -1;
+	fi
+fi
+
 ##### ------------------------------------------------ #####
 ### load base functions
 #
@@ -127,7 +154,7 @@ case $CTLENGINE in
 			CTLENGINELOADED=1
 		fi
 		;;
-	SER_MI|ser_mi)
+	SER_MI|ser_mi|SERCMD_MI|sercmd_mi|SERCMDMI|sercmdmi)
 		if [ -f "$MYLIBDIR/kamctl.ser_mi" ]; then
 			. "$MYLIBDIR/kamctl.ser_mi"
 			CTLENGINELOADED=1
@@ -136,7 +163,7 @@ case $CTLENGINE in
 esac
 
 #### ------------------------------------------------- #####
-### Load sercm interface
+### Load sercmd interface
 #
 if [ -f "$MYLIBDIR/kamctl.ser" ]; then
 	. "$MYLIBDIR/kamctl.ser"
@@ -2326,13 +2353,13 @@ case $1 in
 		trusted "$@"
 		;;
 
-	fifo|unixsock|ser_mi)
+	fifo|unixsock|ser_mi|sercmd_mi|sercmdmi)
 		require_ctlengine
 		shift
 		$CTLCMD "$@"
 		;;
 
-	ser)
+	ser|sercmd)
 		shift
 		$SERCTLCMD "$@"
 		;;
diff --git a/utils/kamctl/kamctl.ser b/utils/kamctl/kamctl.ser
index b70deed..f84c8f0 100644
--- a/utils/kamctl/kamctl.ser
+++ b/utils/kamctl/kamctl.ser
@@ -23,10 +23,6 @@ fi
 ##### ----------------------------------------------- #####
 ### parameters
 #
-SERCMD=`which sercmd`
-if [ -z "$SERCMD" ] ; then 
-    SERCMD="/usr/local/sbin/sercmd"
-fi
 
 #
 ##### ----------------------------------------------- #####
@@ -34,10 +30,10 @@ fi
 #
 usage_ser() {
 	echo
-	mecho " -- command 'ser'"
+	mecho " -- command 'sercmd'"
 	echo
 cat <<EOF
- ser ............................... send  command thru sercmd
+ sercmd ............................. send command through sercmd
 EOF
 }
 USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_ser"
@@ -45,10 +41,10 @@ USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_ser"
 
 ser_cmd()
 {
-	mdbg "entering ser_mi_cmd $*"
+	mdbg "entering ser_cmd $*"
 	
 	if [ "$#" -lt 1 ]; then
-		merr "ser_cmd must take at least command name as parameter"
+		merr "sercmd must take at least command name as parameter"
 		exit 1
 	fi
 
diff --git a/utils/kamctl/kamctl.ser_mi b/utils/kamctl/kamctl.ser_mi
index fdf247c..aad7dad 100644
--- a/utils/kamctl/kamctl.ser_mi
+++ b/utils/kamctl/kamctl.ser_mi
@@ -23,10 +23,6 @@ fi
 ##### ----------------------------------------------- #####
 ### parameters
 #
-SERCMD=`which sercmd`
-if [ -z "$SERCMD" ] ; then 
-    SERCMD="/usr/local/sbin/sercmd"
-fi
 
 #
 ##### ----------------------------------------------- #####
@@ -34,10 +30,10 @@ fi
 #
 usage_ser_mi() {
 	echo
-	mecho " -- command 'ser_mi'"
+	mecho " -- command 'sercmd_mi'"
 	echo
 cat <<EOF
- ser ............................... send mi  command thru sercmd
+ sercmd_mi ............................. send mi command through sercmd
 EOF
 }
 USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_ser_mi"
@@ -48,7 +44,7 @@ ser_mi_cmd()
 	mdbg "entering ser_mi_cmd $*"
 	
 	if [ "$#" -lt 1 ]; then
-		merr "ser_cmd must take at least command name as parameter"
+		merr "sercmd_mi must take at least command name as parameter"
 		exit 1
 	fi
 




More information about the sr-dev mailing list