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

2 Commits   0 Branches   1 Tag
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  1) #!/bin/sh
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  2) #
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  3) # /etc/rc.d/rc.@CSCM_PROGRAM@d - @CSCM_PROGRAM_NAME@ daemon control script.
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  4) #
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  5) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  6) BIN=@sbindir@/@PROGRAM_DAEMON@
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  7) CONF=@CSCM_CONFIG@
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  8) BCF=@CSCM_HOME_PATH@/@CSCM_PROGRAM@/@CSCM_PROGRAM@.bcf
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  9) PID=@CSCM_PID_DIR@/@CSCM_PROGRAM@d.pid
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 10) LOG=@CSCM_LOG_DIR@/@CSCM_PROGRAM@d.log
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 11) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 12) INOTIFY=--inotify
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 13) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 14) cscmd_start() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 15)   # Sanity checks.
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 16)   if [ ! -r $CONF ]; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 17)     echo "$CONF does not appear to exist. Abort."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 18)     exit 1
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 19)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 20) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 21)   if [ -s $PID ]; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 22)     echo "@CSCM_PROGRAM_NAME@ daemon appears to already be running?"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 23)     exit 1
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 24)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 25) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 26)   echo "Starting @CSCM_PROGRAM_NAME@ server daemon..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 27)   if [ -x $BIN ]; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 28)     $BIN --daemonize $INOTIFY --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 29)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 30) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 31) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 32) cscmd_test_conf() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 33)   echo "Checking configuration for correct syntax and then"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 34)   echo "trying to open files referenced in configuration..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 35)   echo ""
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 36)   if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 37)     echo "@PROGRAM_DAEMON@: $CONF: Config file is correct."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 38)   else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 39)     $BIN --test --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 40)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 41) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 42) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 43) cscmd_status() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 44)   if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 45)     echo "@CSCM_PROGRAM_NAME@ daemon is running as PID: $(cat $PID)"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 46)   else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 47)     echo "@CSCM_PROGRAM_NAME@ daemon is stopped."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 48)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 49) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 50) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 51) cscmd_stop() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 52)   echo "Shutdown @CSCM_PROGRAM_NAME@ daemon gracefully..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 53)   if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 54)     kill -TERM $(cat $PID)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 55)   else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 56)     echo "@CSCM_PROGRAM_NAME@ daemon appears to already be stopped."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 57)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 58) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 59) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 60) cscmd_reload() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 61)   echo "Reloading @CSCM_PROGRAM_NAME@ daemon configuration..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 62)   if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 63)     kill -HUP $(cat $PID)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 64)   else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 65)     echo "@CSCM_PROGRAM_NAME@ daemon is not running."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 66)   fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 67) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 68) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 69) cscmd_restart() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 70)   cscmd_stop
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 71)   sleep 3
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 72)   cscmd_start
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 73) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 74) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 75) case "$1" in
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 76)   check)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 77)     cscmd_test_conf
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 78)     ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 79)   reload)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 80)     cscmd_reload
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 81)     ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 82)   restart)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 83)     cscmd_restart
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 84)     ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 85)   start)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 86)     cscmd_start
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 87)     ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 88)   stop)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 89)     cscmd_stop
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 90)     ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 91)   status)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 92)     cscmd_status
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 93)     ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 94)   *)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 95)   echo "usage: `basename $0` {check|reload|restart|start|stop|status}"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 96) esac