summaryrefslogtreecommitdiff
path: root/sci-libs/indilib/files/indiserver.sh
blob: 3cb69c5f404128d461c2ba248b662f8afdd9a83b (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
#!/sbin/openrc-run

if [ ! "${INDISERVER_USER}" ]; then
	INDISERVER_USER="indiserver"
fi

description="indiserver - INDI astronomical control library server"
command="/usr/bin/indiserver"
command_args="${INDISERVER_OPTS} ${INDISERVER_DRIVERS}"
pidfile="/var/run/indiserver.pid"
start_stop_daemon_args="--pidfile ${pidfile} --make-pidfile --background --user ${INDISERVER_USER}"

start_pre() {
        IFS=' ' read -ra DRIVER <<< "${INDISERVER_DRIVERS}"
        for file in "${DRIVER[@]}"; do
                if [ ! -x /usr/bin/"${file}" ]; then
                        eerror "Driver ${file} not found. Check configuration file."
                        exit 1
                fi
        done
        if [ "${INDISERVER_FIFO}" ]; then
                INDISERVER_OPTS="-f ${INDISERVER_FIFO} ${INDISERVER_OPTS}"
                if [ ! -p "${INDISERVER_FIFO}" ]; then
                        if ! su -m "${INDISERVER_USER}" -c "/usr/bin/mkfifo \"${INDISERVER_FIFO}\""; then
                        eerror "Could not create FIFO file in ${INDISERVER_FIFO}!"
			eerror "indiserver is started with user ${INDISERVER_USER}"
			eerror "Check permissions or unset INDISERVER_FIFO in config."
                        exit 1
                        fi
                else
                        ewarn "Strange. FIFO file ${INDISERVER_FIFO} already exists"
                fi
        fi
        return 0
        }

stop_post() {
        if [ -p "${INDISERVER_FIFO}" ]; then
                rm -rf "${INDISERVER_FIFO}"
        fi
        return 0
        }