owhttpd.init (1506B)
1 #!/bin/sh /etc/rc.common 2 # Copyright (C) 2009-2015 OpenWrt.org 3 4 START=95 5 USE_PROCD=1 6 7 PROG=/usr/bin/owhttpd 8 9 append_arg() { 10 local cfg="$1" 11 local var="$2" 12 local opt="$3" 13 local def="$4" 14 local val 15 16 config_get val "$cfg" "$var" 17 [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}" 18 } 19 20 append_bool() { 21 local cfg="$1" 22 local var="$2" 23 local opt="$3" 24 local def="$4" 25 local val 26 27 config_get_bool val "$cfg" "$var" "$def" 28 [ "$val" = 1 ] && procd_append_param command "$opt" 29 } 30 31 append_plain() { 32 procd_append_param command "$1" 33 } 34 35 append_param() { 36 local cfg="$1" 37 local var="$2" 38 local opt="$3" 39 local def="$4" 40 local val 41 42 config_get val "$cfg" "$var" 43 [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}" 44 } 45 46 start_instance() { 47 local cfg="$1" 48 local enabled 49 50 config_get_bool enabled "$cfg" 'enabled' '0' 51 [ "$enabled" = 0 ] && return 1 52 53 procd_open_instance 54 55 procd_set_param command "$PROG" --foreground --error_print=1 56 57 # common parameters 58 append_bool "$cfg" readonly "--readonly" 59 append_arg "$cfg" error_level "--error_level" 60 config_list_foreach "$cfg" options append_plain 61 config_list_foreach "$cfg" devices append_plain 62 append_param "$cfg" user user 63 64 # owhttpd-specific 65 append_arg "$cfg" port "--port" 66 append_arg "$cfg" max_connections "--max_connections" 67 68 procd_set_param respawn 69 70 procd_close_instance 71 72 } 73 74 service_triggers() { 75 procd_add_reload_trigger owhttpd 76 } 77 78 start_service() { 79 config_load owhttpd 80 config_foreach start_instance owhttpd 81 }