#!/bin/sh                   
# generic init file for darkice
#                              
# Author:
# Niels Dettenbach - nd@syndicat.com - 2009-11-05
#
# License:
# GPLv3 (2009)                                     
#                                  

## settings ##
# check your paths!

program=/usr/bin/darkice
pidfile=/var/run/darkice.pid
configfile=/etc/darkice.cfg 
logfile=/var/log/darkice.log
progname="darkice"          
restart_delay=2             
verbose="5"                 

## end of settings ##

RETVAL=0
if [ ! -f $configfile ]
then                   
        echo "$progname: config file not found"
        exit                                   
fi                                             

if [ ! -f $program ]
then                
        echo "$progname: programm file $program not found"
        exit                                              
fi                                                        

case $1 in
'start')  
        if [ -f $pidfile ]; then
                PID=`cat $pidfile`
                running=`ps --no-headers -o "%c" -p $PID`
                if ( [ "$progname" == "$running" ] ); then
                        echo "$progname is still running" 
                else                                      
                        echo "$progname seems crashed - PID does not match the deamon"
                        echo "removing stale PID File $pidfile"                       
                        rm $pidfile                                                   
                        $0 start                                                      
                        exit $?                                                       
                fi                                                                    
                exit 0                                                                
        else                                                                          
                echo -n $"Starting $progname "                                        
                RETVAL=1                                                              
                $program -v $verbose -c $configfile 2>%1 >> $logfile &                
                echo                                                                  
                RETVAL=$?                                                             
                if [ $RETVAL -eq 0  ]; then                                           
                        echo $! > $pidfile                                            
                        echo " started"                                               
                else                                                                  
                        echo " not started"                                           
                        echo $RETVAL                                                  
                        exit 0                                                        
                fi                                                                    
                RETVAL=$?                                                             
        fi                                                                            
;;                                                                                    
'stop')                                                                               
        if [ -f $pidfile ]; then                                                      
                echo -n $"Stop $progname "                                            
                PID=`cat $pidfile`                                                    
                kill -s TERM $PID 2> /dev/null                                        
                echo                                                                  
                sleep $restart_delay
                rm $pidfile
                echo " stopped"
        else
                echo "$progname not running"
        fi
        RETVAL=$?
;;
'status')
        if [ -f $pidfile ]; then
                PID=`cat $pidfile`
                running=`ps --no-headers -o "%c" -p $PID`
                if ( [ "$progname" == "$running" ] ); then
                        echo "$progname IS running with PID `cat $pidfile`."
                else
                        echo "$progname process is dead or stale PID File $pidfile"
                        exit 0
                fi
        else
                echo "$progname is not running"
                exit 0
        fi
;;
'restart')
        $0 stop
        $0 start
        RETVAL=$?
;;

'restartifdown')
        if [ -f $pidfile ]; then
                PID=`cat $pidfile`
                running=`ps --no-headers -o "%c" -p $PID`
                if ( [ "$progname" == "$running" ] ); then
                        echo "$progname IS running with PID `cat $pidfile` - no restart."
                else
                        echo "$progname PID $PID seems dead - restart"
                        $0 stop
                        $0 start
                        RETVAL=$?
                fi
        else
                echo "PID file $pidfile found - restart"
                $0 stop
                $0 start
                RETVAL=$?
        fi
;;

*)
        echo "Usage: $0 {start|stop|restart|status|restartifdown} "
        exit 1;
;;
esac

exit $RETVAL
