cScm Configuration Daemon

cScm – is a tool to convert SCM configuration files into binary format and store its in shared memory for reading by cSvn-ui and cGit-ui CGI scripts

12 Commits   0 Branches   1 Tag
     5         kx #!/bin/sh
     5         kx #
     5         kx # /etc/rc.d/rc.@CSCM_PROGRAM@d - @CSCM_PROGRAM_NAME@ daemon control script.
     5         kx #
     5         kx 
     5         kx BIN=@sbindir@/@PROGRAM_DAEMON@
     5         kx CONF=@CSCM_CONFIG@
     5         kx BCF=@CSCM_HOME_PATH@/@CSCM_PROGRAM@/@CSCM_PROGRAM@.bcf
     5         kx PID=@CSCM_PID_DIR@/@CSCM_PROGRAM@d.pid
     5         kx LOG=@CSCM_LOG_DIR@/@CSCM_PROGRAM@d.log
     5         kx 
     5         kx INOTIFY=--inotify
     5         kx 
     5         kx cscmd_start() {
     5         kx   # Sanity checks.
     5         kx   if [ ! -r $CONF ]; then
     5         kx     echo "$CONF does not appear to exist. Abort."
     5         kx     exit 1
     5         kx   fi
     5         kx 
     5         kx   if [ -s $PID ]; then
     5         kx     echo "@CSCM_PROGRAM_NAME@ daemon appears to already be running?"
     5         kx     exit 1
     5         kx   fi
     5         kx 
     5         kx   echo "Starting @CSCM_PROGRAM_NAME@ server daemon..."
     5         kx   if [ -x $BIN ]; then
     5         kx     $BIN --daemonize $INOTIFY --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
     5         kx   fi
     5         kx }
     5         kx 
     5         kx cscmd_test_conf() {
     5         kx   echo "Checking configuration for correct syntax and then"
     5         kx   echo "trying to open files referenced in configuration..."
     5         kx   echo ""
     5         kx   if [ -s $PID ] ; then
     5         kx     echo "@PROGRAM_DAEMON@: $CONF: Config file is correct."
     5         kx   else
     5         kx     $BIN --test --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
     5         kx   fi
     5         kx }
     5         kx 
     5         kx cscmd_status() {
     5         kx   if [ -s $PID ] ; then
     5         kx     echo "@CSCM_PROGRAM_NAME@ daemon is running as PID: $(cat $PID)"
     5         kx   else
     5         kx     echo "@CSCM_PROGRAM_NAME@ daemon is stopped."
     5         kx   fi
     5         kx }
     5         kx 
     5         kx cscmd_stop() {
     5         kx   echo "Shutdown @CSCM_PROGRAM_NAME@ daemon gracefully..."
     5         kx   if [ -s $PID ] ; then
     5         kx     kill -TERM $(cat $PID)
     5         kx   else
     5         kx     echo "@CSCM_PROGRAM_NAME@ daemon appears to already be stopped."
     5         kx   fi
     5         kx }
     5         kx 
     5         kx cscmd_reload() {
     5         kx   echo "Reloading @CSCM_PROGRAM_NAME@ daemon configuration..."
     5         kx   if [ -s $PID ] ; then
     5         kx     kill -HUP $(cat $PID)
     5         kx   else
     5         kx     echo "@CSCM_PROGRAM_NAME@ daemon is not running."
     5         kx   fi
     5         kx }
     5         kx 
     5         kx cscmd_restart() {
     5         kx   cscmd_stop
     5         kx   sleep 3
     5         kx   cscmd_start
     5         kx }
     5         kx 
     5         kx case "$1" in
     5         kx   check)
     5         kx     cscmd_test_conf
     5         kx     ;;
     5         kx   reload)
     5         kx     cscmd_reload
     5         kx     ;;
     5         kx   restart)
     5         kx     cscmd_restart
     5         kx     ;;
     5         kx   start)
     5         kx     cscmd_start
     5         kx     ;;
     5         kx   stop)
     5         kx     cscmd_stop
     5         kx     ;;
     5         kx   status)
     5         kx     cscmd_status
     5         kx     ;;
     5         kx   *)
     5         kx   echo "usage: `basename $0` {check|reload|restart|start|stop|status}"
     5         kx esac