summaryrefslogtreecommitdiff
path: root/etc/init.d/commission
diff options
context:
space:
mode:
Diffstat (limited to 'etc/init.d/commission')
-rwxr-xr-xetc/init.d/commission68
1 files changed, 68 insertions, 0 deletions
diff --git a/etc/init.d/commission b/etc/init.d/commission
new file mode 100755
index 0000000..03bec24
--- /dev/null
+++ b/etc/init.d/commission
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/lighttpd
+DAEMONNAME="lighttpd"
+NAME=commission
+DESC="Lighttpd Web Server"
+OPTS="-f /etc/lighttpd-commission.conf"
+PIDFILE=/var/run/lighttpd-commission.pid
+CONF_DIR=/var/config
+ENABLED=yes
+
+[ -f "/etc/default/${NAME}" ] && . "/etc/default/${NAME}"
+
+PASSWORDS=$(passwd -Sa | egrep '^[^[:space:]]+[[:space:]]P[[:space:]]' | wc -l)
+if (($PASSWORDS == 0)) ; then
+ # No password, so indicate commissioning mode
+ # php-fpm-commision will be turned on as well
+ rm -f /etc/default/$NAME
+ ENABLED="yes"
+fi
+
+[ -f "/etc/default/no-${NAME}" ] && . "/etc/default/no-${NAME}"
+
+if [ ! -f $CONF_DIR/server.pem ]; then
+ echo "Generating server cert"
+ openssl req \
+ -x509 -nodes -days 3650 \
+ -subj '/C=US/ST=Minnesota/L=Minneapolis/CN=mlinux.example.com' \
+ -newkey rsa:2048 -keyout $CONF_DIR/server.pem -out $CONF_DIR/server.pem
+fi
+
+case "$1" in
+ start)
+ if [ "$ENABLED" != "yes" ]; then
+ echo "$NAME: disabled in /etc/default"
+ exit
+ fi
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start -x "$DAEMON" -- $OPTS
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop -p ${PIDFILE} -x "$DAEMON"
+ echo "$NAME."
+ ;;
+ reload)
+ echo -n "Reloading $DESC: "
+ set -x
+ pkill -HUP -F ${PIDFILE} "$DAEMONNAME"
+ echo "$NAME."
+ ;;
+ restart|force-reload)
+ echo -n "Restarting $DESC: "
+ start-stop-daemon --stop -p ${PIDFILE} -x "$DAEMON"
+ sleep 1
+ start-stop-daemon --start -x "$DAEMON" -- $OPTS
+ echo "$NAME."
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0