Use autotools a bit more to our advantage:
authordbs <dbs@9efc2488-bf62-4759-914b-345cdb29e865>
Sun, 31 May 2009 19:49:00 +0000 (19:49 +0000)
committerdbs <dbs@9efc2488-bf62-4759-914b-345cdb29e865>
Sun, 31 May 2009 19:49:00 +0000 (19:49 +0000)
  * In osrf_ctl.sh, use the configured location for osrf_config by default
  * Differentiate between prefix and exec_prefix to respect configure options
  * Make configure output slightly more consistent

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1708 9efc2488-bf62-4759-914b-345cdb29e865

bin/osrf_config.in
bin/osrf_ctl.sh [deleted file]
bin/osrf_ctl.sh.in [new file with mode: 0755]
configure.ac
src/Makefile.am

index 9bd18fb..a61bfe8 100644 (file)
@@ -17,7 +17,7 @@
 # Shows configuration options of OSRF
 
 prefix=@prefix@
-exec_prefix=@prefix@
+exec_prefix=@exec_prefix@
 datarootdir=@datarootdir@
 
 function showInstalled {
diff --git a/bin/osrf_ctl.sh b/bin/osrf_ctl.sh
deleted file mode 100755 (executable)
index e7e34b9..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-#!/bin/bash
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-OPT_ACTION=""
-OPT_CONFIG=""
-OPT_PID_DIR=""
-
-# ---------------------------------------------------------------------------
-# Make sure we're running as the correct user
-# ---------------------------------------------------------------------------
-[ $(whoami) != 'opensrf' ] && echo 'Must run as user "opensrf"' && exit;
-
-
-function usage {
-       echo "";
-       echo "usage: $0 [OPTION]... -c <c_config> -a <action>";
-       echo "";
-       echo "Mandatory parameters:";
-       echo -e "  -a\t\taction to perform";
-       echo "";
-       echo "Optional parameters:";
-       echo -e "  -c\t\tfull path to C configuration file (opensrf_core.xml)";
-       echo -e "  -d\t\tstore PID files in this directory";
-       echo -e "  -l\t\taccept 'localhost' as the fully-qualified domain name";
-       echo "";
-       echo "Actions include:";
-       echo -e "\tstart_router"
-       echo -e "\tstop_router"
-       echo -e "\trestart_router"
-       echo -e "\tstart_perl"
-       echo -e "\tstop_perl"
-       echo -e "\trestart_perl"
-       echo -e "\tstart_c"
-       echo -e "\tstop_c"
-       echo -e "\trestart_c"
-       echo -e "\tstart_osrf"
-       echo -e "\tstop_osrf"
-       echo -e "\trestart_osrf"
-       echo -e "\tstop_all" 
-       echo -e "\tstart_all"
-       echo -e "\trestart_all"
-       echo "";
-       echo "Examples:";
-       echo "  $0 -a restart_all";
-       echo "  $0 -l -c opensrf_core.xml -a restart_all";
-       echo "";
-       exit;
-}
-
-# Get root directory of this script
-function basepath {
-       BASEDIR=""
-       script_path="$1"
-       IFS="/"
-       for p in $script_path
-       do
-               if [ -z "$BASEDIR" ] && [ -n "$p" ]; then
-                       BASEDIR="$p"
-               fi;
-       done
-       BASEDIR="/$BASEDIR"
-       IFS=
-}
-
-basepath $0
-
-# ---------------------------------------------------------------------------
-# Load the command line options and set the global vars
-# ---------------------------------------------------------------------------
-while getopts  "a:d:c:lh" flag; do
-       case $flag in   
-               "a")            OPT_ACTION="$OPTARG";;
-               "c")            OPT_CONFIG="$OPTARG";;
-               "d")            OPT_PID_DIR="$OPTARG";;
-               "l")            export OSRF_HOSTNAME="localhost";;
-               "h"|*)  usage;;
-       esac;
-done
-
-OSRF_CONFIG=`which osrf_config`
-[ -z "$OSRF_CONFIG" ] && OSRF_CONFIG=`find $BASEDIR -name osrf_config`
-
-[ -z "$OPT_CONFIG" ] && OPT_CONFIG=`$OSRF_CONFIG --sysconfdir`/opensrf_core.xml;
-if [ ! -r "$OPT_CONFIG" ]; then
-       echo "Please specify the location of the opensrf_core.xml file using the -c flag";
-       exit 1;
-fi;
-[ -z "$OPT_PID_DIR" ] && OPT_PID_DIR=`$OSRF_CONFIG --localstatedir`/run;
-[ -z "$OPT_ACTION" ] && usage;
-
-PID_ROUTER="$OPT_PID_DIR/router.pid";
-PID_OSRF_PERL="$OPT_PID_DIR/osrf_perl.pid";
-PID_OSRF_C="$OPT_PID_DIR/osrf_c.pid";
-
-
-# ---------------------------------------------------------------------------
-# Utility code for checking the PID files
-# ---------------------------------------------------------------------------
-function do_action {
-
-       action="$1"; 
-       pidfile="$2";
-       item="$3"; 
-
-       if [ $action == "start" ]; then
-
-               if [ -e $pidfile ]; then
-                       pid=$(cat $pidfile);
-                       echo "$item already started : $pid";
-                       return 0;
-               fi;
-               echo "Starting $item";
-       fi;
-
-       if [ $action == "stop" ]; then
-
-               if [ ! -e $pidfile ]; then
-                       echo "$item not running";
-                       return 0;
-               fi;
-
-        while read pid; do
-            echo "Stopping $item process $pid..."
-            kill -s INT $pid
-        done < $pidfile;
-               rm -f $pidfile;
-
-       fi;
-
-       return 0;
-}
-
-
-# ---------------------------------------------------------------------------
-# Start / Stop functions
-# ---------------------------------------------------------------------------
-
-
-function start_router {
-       do_action "start" $PID_ROUTER "OpenSRF Router";
-       opensrf_router $OPT_CONFIG routers
-       pid=$(ps ax | grep "OpenSRF Router" | grep -v grep | awk '{print $1}')
-       echo $pid > $PID_ROUTER;
-       return 0;
-}
-
-function stop_router {
-       do_action "stop" $PID_ROUTER "OpenSRF Router";
-       return 0;
-}
-
-function start_perl {
-    echo "Starting OpenSRF Perl";
-    opensrf-perl.pl --verbose --pid-dir $OPT_PID_DIR \
-        --config $OPT_CONFIG --action start_all --settings-startup-pause 3
-       return 0;
-}
-
-function stop_perl {
-    echo "Stopping OpenSRF Perl";
-    opensrf-perl.pl --verbose --pid-dir $OPT_PID_DIR --config $OPT_CONFIG --action stop_all
-       sleep 1;
-       return 0;
-}
-
-function start_c {
-       host=$OSRF_HOSTNAME
-       if [ "_$host" == "_" ]; then
-               host=$(perl -MNet::Domain=hostfqdn -e 'print hostfqdn()');
-       fi;
-
-       do_action "start" $PID_OSRF_C "OpenSRF C (host=$host)";
-       opensrf-c $host $OPT_CONFIG opensrf;
-       pid=$(ps ax | grep "OpenSRF System-C" | grep -v grep | awk '{print $1}')
-       echo $pid > "$PID_OSRF_C";
-       return 0;
-}
-
-function stop_c {
-       do_action "stop" $PID_OSRF_C "OpenSRF C";
-       sleep 1;
-       return 0;
-}
-
-
-
-# ---------------------------------------------------------------------------
-# Do the requested action
-# ---------------------------------------------------------------------------
-case $OPT_ACTION in
-       "start_router") start_router;;
-       "stop_router") stop_router;;
-       "restart_router") stop_router; start_router;;
-       "start_perl") start_perl;;
-       "stop_perl") stop_perl;;
-       "restart_perl") stop_perl; start_perl;;
-       "start_c") start_c;;
-       "stop_c") stop_c;;
-       "restart_c") stop_c; start_c;;
-       "start_osrf") start_perl; start_c;;
-       "stop_osrf") stop_perl; stop_c;;
-       "restart_osrf") stop_perl; stop_c; start_perl; start_c;;
-       "stop_all") stop_c; stop_perl; stop_router;;
-       "start_all") start_router; start_perl; start_c;;
-       "restart_all") stop_c; stop_perl; stop_router; start_router; start_perl; start_c;;
-       *) usage;;
-esac;
-
-
-
diff --git a/bin/osrf_ctl.sh.in b/bin/osrf_ctl.sh.in
new file mode 100755 (executable)
index 0000000..b457f19
--- /dev/null
@@ -0,0 +1,209 @@
+#!/bin/bash
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# Strictness to avoid folly
+set -e
+set -u
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+
+OPT_ACTION=""
+OPT_CONFIG=""
+OPT_PID_DIR=""
+
+# ---------------------------------------------------------------------------
+# Make sure we're running as the correct user
+# ---------------------------------------------------------------------------
+[ $(whoami) != 'opensrf' ] && echo 'Must run as user "opensrf"' && exit;
+
+
+function usage {
+       echo "";
+       echo "usage: $0 [OPTION]... -c <c_config> -a <action>";
+       echo "";
+       echo "Mandatory parameters:";
+       echo -e "  -a\t\taction to perform";
+       echo "";
+       echo "Optional parameters:";
+       echo -e "  -c\t\tfull path to C configuration file (opensrf_core.xml)";
+       echo -e "  -d\t\tstore PID files in this directory";
+       echo -e "  -l\t\taccept 'localhost' as the fully-qualified domain name";
+       echo "";
+       echo "Actions include:";
+       echo -e "\tstart_router"
+       echo -e "\tstop_router"
+       echo -e "\trestart_router"
+       echo -e "\tstart_perl"
+       echo -e "\tstop_perl"
+       echo -e "\trestart_perl"
+       echo -e "\tstart_c"
+       echo -e "\tstop_c"
+       echo -e "\trestart_c"
+       echo -e "\tstart_osrf"
+       echo -e "\tstop_osrf"
+       echo -e "\trestart_osrf"
+       echo -e "\tstop_all" 
+       echo -e "\tstart_all"
+       echo -e "\trestart_all"
+       echo "";
+       echo "Examples:";
+       echo "  $0 -a restart_all";
+       echo "  $0 -l -c opensrf_core.xml -a restart_all";
+       echo "";
+       exit;
+}
+
+# ---------------------------------------------------------------------------
+# Load the command line options and set the global vars
+# ---------------------------------------------------------------------------
+while getopts  "a:d:c:lh" flag; do
+       case $flag in   
+               "a")            OPT_ACTION="$OPTARG";;
+               "c")            OPT_CONFIG="$OPTARG";;
+               "d")            OPT_PID_DIR="$OPTARG";;
+               "l")            export OSRF_HOSTNAME="localhost";;
+               "h"|*)  usage;;
+       esac;
+done
+
+OSRF_CONFIG="@bindir@/osrf_config"
+[ ! -f "$OSRF_CONFIG" ] && OSRF_CONFIG=`which osrf_config`
+
+[ -z "$OPT_CONFIG" ] && OPT_CONFIG=`$OSRF_CONFIG --sysconfdir`/opensrf_core.xml;
+if [ ! -r "$OPT_CONFIG" ]; then
+       echo "Please specify the location of the opensrf_core.xml file using the -c flag";
+       exit 1;
+fi;
+[ -z "$OPT_PID_DIR" ] && OPT_PID_DIR=`$OSRF_CONFIG --localstatedir`/run;
+[ -z "$OPT_ACTION" ] && usage;
+
+PID_ROUTER="$OPT_PID_DIR/router.pid";
+PID_OSRF_PERL="$OPT_PID_DIR/osrf_perl.pid";
+PID_OSRF_C="$OPT_PID_DIR/osrf_c.pid";
+
+
+# ---------------------------------------------------------------------------
+# Utility code for checking the PID files
+# ---------------------------------------------------------------------------
+function do_action {
+
+       action="$1"; 
+       pidfile="$2";
+       item="$3"; 
+
+       if [ $action == "start" ]; then
+
+               if [ -e $pidfile ]; then
+                       pid=$(cat $pidfile);
+                       echo "$item already started : $pid";
+                       return 0;
+               fi;
+               echo "Starting $item";
+       fi;
+
+       if [ $action == "stop" ]; then
+
+               if [ ! -e $pidfile ]; then
+                       echo "$item not running";
+                       return 0;
+               fi;
+
+        while read pid; do
+            echo "Stopping $item process $pid..."
+            kill -s INT $pid
+        done < $pidfile;
+               rm -f $pidfile;
+
+       fi;
+
+       return 0;
+}
+
+
+# ---------------------------------------------------------------------------
+# Start / Stop functions
+# ---------------------------------------------------------------------------
+
+
+function start_router {
+       do_action "start" $PID_ROUTER "OpenSRF Router";
+       opensrf_router $OPT_CONFIG routers
+       pid=$(ps ax | grep "OpenSRF Router" | grep -v grep | awk '{print $1}')
+       echo $pid > $PID_ROUTER;
+       return 0;
+}
+
+function stop_router {
+       do_action "stop" $PID_ROUTER "OpenSRF Router";
+       return 0;
+}
+
+function start_perl {
+    echo "Starting OpenSRF Perl";
+    opensrf-perl.pl --verbose --pid-dir $OPT_PID_DIR \
+        --config $OPT_CONFIG --action start_all --settings-startup-pause 3
+       return 0;
+}
+
+function stop_perl {
+    echo "Stopping OpenSRF Perl";
+    opensrf-perl.pl --verbose --pid-dir $OPT_PID_DIR --config $OPT_CONFIG --action stop_all
+       sleep 1;
+       return 0;
+}
+
+function start_c {
+       host=$OSRF_HOSTNAME
+       if [ "_$host" == "_" ]; then
+               host=$(perl -MNet::Domain=hostfqdn -e 'print hostfqdn()');
+       fi;
+
+       do_action "start" $PID_OSRF_C "OpenSRF C (host=$host)";
+       opensrf-c $host $OPT_CONFIG opensrf;
+       pid=$(ps ax | grep "OpenSRF System-C" | grep -v grep | awk '{print $1}')
+       echo $pid > "$PID_OSRF_C";
+       return 0;
+}
+
+function stop_c {
+       do_action "stop" $PID_OSRF_C "OpenSRF C";
+       sleep 1;
+       return 0;
+}
+
+
+
+# ---------------------------------------------------------------------------
+# Do the requested action
+# ---------------------------------------------------------------------------
+case $OPT_ACTION in
+       "start_router") start_router;;
+       "stop_router") stop_router;;
+       "restart_router") stop_router; start_router;;
+       "start_perl") start_perl;;
+       "stop_perl") stop_perl;;
+       "restart_perl") stop_perl; start_perl;;
+       "start_c") start_c;;
+       "stop_c") stop_c;;
+       "restart_c") stop_c; start_c;;
+       "start_osrf") start_perl; start_c;;
+       "stop_osrf") stop_perl; stop_c;;
+       "restart_osrf") stop_perl; stop_c; start_perl; start_c;;
+       "stop_all") stop_c; stop_perl; stop_router;;
+       "start_all") start_router; start_perl; start_c;;
+       "restart_all") stop_c; stop_perl; stop_router; start_router; start_perl; start_c;;
+       *) usage;;
+esac;
+
+
+
index 9a41285..a12e22e 100644 (file)
@@ -29,6 +29,7 @@ AC_PREFIX_DEFAULT([/opensrf/])
 
 AC_SUBST(prefix)
 AC_SUBST(sysconfdir)
+AC_SUBST(bindir)
 
 
 AC_DEFUN([AC_PYTHON_MOD],[
@@ -113,19 +114,19 @@ AC_PROG_MAKE_SET
 # Set install path variables
 #------------------------------
 AC_ARG_WITH([tmp],
-[  --with-tmp=path              location for the tmp dir for openSRF (default is /tmp)],
+[  --with-tmp=path                  location for the temporary dir for OpenSRF (default is /tmp)],
 [TMP=${withval}],
 [TMP=/tmp])
 AC_SUBST([TMP])
 
 AC_ARG_WITH([apxs],
-[  --with-apxs=path                 location of apxs (default is /usr/bin/apxs2)],
+[  --with-apxs=path                 location of the apxs Apache configuration tool (default is /usr/bin/apxs2)],
 [APXS2=${withval}],
 [APXS2=/usr/bin/apxs2])
 AC_SUBST([APXS2])
 
 AC_ARG_WITH([apache],
-[  --with-apache=path               location of the apache headers (default is /usr/include/apache2)],
+[  --with-apache=path               location of the Apache headers (default is /usr/include/apache2)],
 [APACHE2_HEADERS=${withval}],
 [APACHE2_HEADERS=/usr/include/apache2])
 AC_SUBST([APACHE2_HEADERS])
@@ -262,7 +263,8 @@ AC_CONFIG_FILES([Makefile
                  src/python/Makefile
                  src/router/Makefile
                  src/srfsh/Makefile
-                 bin/osrf_config], [if test -e "./bin/osrf_config"; then chmod 755 bin/osrf_config; fi])
+                 bin/osrf_config
+                 bin/osrf_ctl.sh])
 
 
 AC_OUTPUT
index 8ca9c62..d695ad0 100644 (file)
@@ -35,8 +35,8 @@ endif
 
 SUBDIRS = libopensrf c-apps router srfsh jserver gateway perl $(MAYBE_PY) $(MAYBE_JA)
 
-dist_bin_SCRIPTS = @top_srcdir@/bin/osrf_ctl.sh @top_srcdir@/bin/opensrf-perl.pl
-bin_SCRIPTS = @top_srcdir@/bin/osrf_config
+dist_bin_SCRIPTS = @top_srcdir@/bin/opensrf-perl.pl
+bin_SCRIPTS = @top_srcdir@/bin/osrf_config @top_srcdir@/bin/osrf_ctl.sh 
 
 dist_sysconf_DATA = @top_srcdir@/examples/opensrf.xml.example @top_srcdir@/examples/opensrf_core.xml.example @top_srcdir@/examples/srfsh.xml.example