summaryrefslogtreecommitdiff
path: root/sci-libs/indilib/files/indiserver.sh
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/indilib/files/indiserver.sh')
-rw-r--r--sci-libs/indilib/files/indiserver.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/sci-libs/indilib/files/indiserver.sh b/sci-libs/indilib/files/indiserver.sh
new file mode 100644
index 0000000..ddedfdf
--- /dev/null
+++ b/sci-libs/indilib/files/indiserver.sh
@@ -0,0 +1,42 @@
+#!/sbin/runscript
+
+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
+ } \ No newline at end of file