summaryrefslogtreecommitdiff
blob: 95a230eeea63250fe4d171b5494c3cc6e078890d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Id$

depend() {
    need localmount net
    after bootmisc
}

start() {
    local tmpnice="${NICE:+"--nicelevel "}${NICE}"
    local tmpionice="${IONICE:+"--ionice "}${IONICE}"
    local started=""

    ebegin "Starting dropbox"
    for dbuser in ${DROPBOX_USERS}; do
	local homedir=$(eval echo ~${dbuser})
	if test -d "${homedir}" && \
	    echo 0 > ${homedir}/.dropbox/dropbox.pid && \
	    start-stop-daemon -S -b \
	    ${tmpnice} ${tmpionice} \
	    -u ${dbuser} -v \
	    -p ${homedir}/.dropbox/dropbox.pid \
	    -e HOME=${homedir} \
	    -x /opt/bin/dropbox; then
	    started="${started} ${dbuser}"
	else
	    eend $?
	    eerror "Failed to start dropbox for ${dbuser}"
	    if [ -n "${started}" ]; then
		eerror "Stopping already started dropbox"
		DROPBOX_USERS=${started} stop
	    fi
	    return 1
	fi
    done
    if [ -z "${started}" ];then
	eerror "No dropbox started"
	eend 1
    else
	eend 0
    fi
}

stop() {
    local retval=0
    ebegin "Stopping dropbox"
    for dbuser in ${DROPBOX_USERS}; do
	local homedir=$(eval echo ~${dbuser})
	start-stop-daemon --stop \
	    --pidfile ${homedir}/.dropbox/dropbox.pid || retval=$?
    done
    eend ${retval}
}

status() {
    for dbuser in ${DROPBOX_USERS}; do
	local homedir=$(eval echo ~${dbuser})
	if [ -e ${homedir}/.dropbox/dropbox.pid ] ; then
            echo "dropboxd for USER $dbuser: running."
	else
            echo "dropboxd for USER $dbuser: not running."
	fi
    done
}