# chkconfig: 345 85 15
# description: Startup script for dropbox daemon
#
# processname: dropboxd
# pidfile: /var/run/dropbox.pid
# config: /etc/sysconfig/dropbox
#

### BEGIN INIT INFO
# Provides: dropboxd
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the Dropbox file syncing daemon
# Description:       Dropbox is a filesyncing sevice provided by dropbox.com
#                    This service starts up the dropbox daemon.
### END INIT INFO


# Source function library.
. /etc/rc.d/init.d/functions

DROPBOX_PATH=/usr/libexec/dropbox
[ -f /etc/sysconfig/dropbox ] && . /etc/sysconfig/dropbox

if [ -z $DROPBOX_GROUP ]; then
    DROPBOX_GROUP='dropbox'
fi

if [ -z $DROPBOX_USERS ]; then
    DROPBOX_USERS=$(lid -gn "$DROPBOX_GROUP")
fi

prog=dropboxd
lockfile=${LOCKFILE-/var/lock/subsys/$prog}
config=${CONFIG-/etc/dropbox}
RETVAL=0

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

        if [ -z $DROPBOX_USERS ] ; then
                echo -n ": unconfigured: $config"
                echo_failure
                echo
                rm -f ${lockfile} ${pidfile}
                RETURN=6
                return $RETVAL
        fi

        for dbuser in $DROPBOX_USERS; do
            daemon --user $dbuser /bin/sh -c "$DROPBOX_PATH/dropboxd&"
        done

        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}

status() {
    for dbuser in $DROPBOX_USERS; do
        dbpid=`pgrep -u $dbuser dropbox`
        if [ -z $dbpid ] ; then
            echo "dropboxd for USER $dbuser: not running."
        else
            echo "dropboxd for USER $dbuser: running (pid $dbpid)"
        fi
    done
}

stop() {
        echo -n $"Stopping $prog"
    for dbuser in $DROPBOX_USERS; do
        pkill -u $dbuser -f -x "$DROPBOX_PATH/dropbox"
    done
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  status)
        status
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        start
        ;;
  *)
        echo $"Usage: $prog {start|status|stop|restart}"
        RETVAL=3
esac

exit $RETVAL
