#!/bin/sh /etc/rc.common # Copyright (C) 2010 Jo-Philipp Wich START=50 UHTTPD_BIN="/usr/sbin/uhttpd" UHTTPD_ARGS="" append_listen_http() { append UHTTPD_ARGS "-p $1" } append_listen_https() { append UHTTPD_ARGS "-s $1" } append_arg() { local cfg="$1" local var="$2" local opt="$3" local val config_get val "$cfg" "$var" [ -n "$val" ] && append UHTTPD_ARGS "$opt $val" } start_instance() { UHTTPD_ARGS="" local cfg="$1" local ssl append_arg "$cfg" home "-h" append_arg "$cfg" cgi_prefix "-c" append_arg "$cfg" lua_prefix "-l" append_arg "$cfg" lua_handler "-L" config_list_foreach "$cfg" listen_http \ append_listen_http config_get ssl "$cfg" listen_https [ -n "$ssl" ] && { append_arg "$cfg" cert "-C" append_arg "$cfg" key "-K" config_list_foreach "$cfg" listen_https \ append_listen_https } start-stop-daemon -S -x $UHTTPD_BIN \ -p /var/run/uhttpd_${cfg}.pid \ -m -b -- -f $UHTTPD_ARGS } stop_instance() { local cfg="$1" [ -f /var/run/uhttpd_${cfg}.pid ] && { start-stop-daemon -K -q -n ${UHTTPD_BIN##*/} \ -p /var/run/uhttpd_${cfg}.pid -s TERM rm -f /var/run/uhttpd_${cfg}.pid } } start() { config_load uhttpd config_foreach start_instance uhttpd } stop() { config_load uhttpd config_foreach stop_instance uhttpd }