summaryrefslogtreecommitdiff
blob: 2f905424cfa78f89b5a47711b20c8afb16e17a17 (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
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later

depend() {
	need net
	need localmount
	after bootmisc
}

checkconfig() {
	if [ "${CALIBRE_USER}" = "" -o "${CALIBRE_USER}" = "root" ] ; then
		eerror "Please edit /etc/conf.d/calibre-server"
		eerror "You have to specify a user to run calibre-server as, as we will not run it as root!"
		eerror "Modify CALIBRE_USER to your needs (you can also add a group, after a colon)"
		return 1
	fi
	if ! getent passwd "${CALIBRE_USER%:*}" >/dev/null ; then
		eerror "Please edit /etc/conf.d/calibre-server"
		eerror "Your user has to exist!"
		return 1
	fi
	if [ "${CALIBRE_USER%:*}" != "${CALIBRE_USER}" ] ; then
		if ! getent group "${CALIBRE_USER#*:}" >/dev/null ; then
			eerror "Please edit /etc/conf.d/calibre-server"
			eerror "Your group has to exist too!"
			return 1
		fi
	fi
	if [ "${CALIBRE_LIBRARY}" = "" ] ; then
		CALIBRE_USER_HOME=$(getent passwd "${CALIBRE_USER%:*}" | cut -d ':' -f 6)
		CALIBRE_LIBRARY="${CALIBRE_USER_HOME}/Calibre Library"
	fi
	if [ ! -d "${CALIBRE_LIBRARY}" ] ; then
		eerror "Please edit /etc/conf.d/calibre-server"
		eerror "The Calibre library, '${CALIBRE_LIBRARY},' does not exist."
		eerror "Please modify CALIBRE_LIBRARY to point to a valid library."
		return 1
	fi
	return 0
}

start() {
	checkconfig || return $?
	local pidfile=/var/run/calibre-server.pid
	ebegin "Starting calibre-server"
	start-stop-daemon --user "${CALIBRE_USER}" \
		--pidfile "${pidfile}" --make-pidfile --background --exec /usr/bin/calibre-server \
		-- --with-library "${CALIBRE_LIBRARY}" ${CALIBRE_OPTS}
	eend $?
}

stop() {
	ebegin "Stopping calibre-server"
	start-stop-daemon --stop --user "${CALIBRE_USER}" \
		--pidfile /var/run/calibre-server.pid
	eend $?
}