#!/bin/bash

# Source function library.
COMMON_FUNCTIONS=true;
if [ -r /etc/init.d/functions ]; then
    . /etc/init.d/functions
else
    COMMON_FUNCTIONS=false;
fi

#export JAVA_HOME=

if [ -z "$BGBILLING_SERVER_DIR" ]; then
    export BGBILLING_SERVER_DIR=/usr/local/BGBillingServer
fi

checkmysql() {
ret=0
STARTTIMEOUT=30
while [ $STARTTIMEOUT -gt 0 ]; do
    RESPONSE=`/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping 2>&1` && break
    echo "$RESPONSE" | grep -q "Error checking mysql: access denied for user" && break
    sleep 1
    let STARTTIMEOUT=${STARTTIMEOUT}-1
done

if [ $STARTTIMEOUT -eq 0 ]; then
    ret=1
    echo "Error checking mysql: timeout error occurred."
fi

return $ret;
}

mysocket=/var/lib/mysql/mysql.sock
checkmysqlsocket() {
ret=0
STARTTIMEOUT=30
while [ $STARTTIMEOUT -gt 0 ]; do 
        if [ -S $mysocket ]; then
    	    break
    	fi
        sleep 1
        let STARTTIMEOUT=${STARTTIMEOUT}-1
    done
            
    if [ $STARTTIMEOUT -eq 0 ]; then
        ret=1
        echo "Error checking mysql: timeout error occurred."
    fi

    return $ret;
}

#depend() {
#    need mysqld
#}

start() {
    echo -n $"Starting $prog: "

    $BGBILLING_SERVER_DIR/$serverstart

    RETVAL=$?

    if [ $COMMON_FUNCTIONS = true ]; then
        if [ $RETVAL -eq 0 ]; then
            action $"" /bin/true
        else
            action $"" /bin/false
        fi
    else
	echo "OK";
    fi
#    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
}

stop() {
    echo -n $"Stopping $prog: "

    if [ $COMMON_FUNCTIONS = true ]; then
        status -p $BGBILLING_SERVER_DIR/.run/$prog.pid $prog > /dev/null
        STVAL=$?

        if [ $STVAL -eq 0 ]; then
            action $"" /bin/true
        else
            action $"process not found " /bin/false
        fi
    fi

    $BGBILLING_SERVER_DIR/$serverstop

    RETVAL=$?
}

restart() {
    stop
    start
}

bgstatus() {
    if [ $COMMON_FUNCTIONS = true ]; then
        status -p $BGBILLING_SERVER_DIR/.run/$prog.pid $prog
        STVAL=$?

        if [ $STVAL -eq 0 ]; then
            action $"" /bin/true
        else
            action $"process not found " /bin/false
        fi
    fi

    $BGBILLING_SERVER_DIR/$serverstatus
}

case "$1" in
        checkmysql)
                checkmysql
        ;;
    
        checkmysqlsocket)
                checkmysqlsocket
        ;;
esac