|
|
- #!/bin/sh /etc/rc.common
-
- START=99
- STOP=50
- USE_PROCD=1
-
- NAME=ttyd
- PROG=/usr/bin/$NAME
-
- validate_section_ttyd()
- {
- uci_load_validate ttyd ttyd "$1" "$2" \
- 'enable:bool:1' \
- 'port:port' \
- 'interface:string' \
- 'credential:string' \
- 'uid:uinteger' \
- 'gid:uinteger' \
- 'signal:uinteger' \
- 'url_arg:bool' \
- 'readonly:bool' \
- 'client_option:list(string)' \
- 'terminal_type:string' \
- 'check_origin:bool' \
- 'max_clients:uinteger' \
- 'once:bool' \
- 'index:string' \
- 'ipv6:bool' \
- 'ssl:bool' \
- 'ssl_cert:file' \
- 'ssl_key:file' \
- 'ssl_ca:file' \
- 'debug:uinteger' \
- 'command:string'
- }
-
- ttyd_instance()
- {
- [ "$2" = 0 ] || {
- echo "validation failed"
- return 1
- }
-
- [ "$enable" = 0 ] && return 1
- [ -z "$command" ] && return 1
-
- [ "${interface::1}" = @ ] && {
- interface=$(
- . /lib/functions/network.sh
- network_get_device device "${interface:1}"
- echo -n "$device"
- )
- }
-
- [ "$url_arg" = 0 ] && url_arg=""
- [ "$readonly" = 0 ] && readonly=""
- [ "$check_origin" = 0 ] && check_origin=""
- [ "$once" = 0 ] && once=""
- [ "$ipv6" = 0 ] && ipv6=""
- [ "$ssl" = 0 ] && ssl=""
-
- procd_open_instance
- procd_set_param command "$PROG" \
- ${port:+-p $port} \
- ${interface:+-i $interface} \
- ${credential:+-c $credential} \
- ${uid:+-u $uid} \
- ${gid:+-g $gid} \
- ${signal:+-s $signal} \
- ${url_arg:+-a} \
- ${readonly:+-R} \
- ${terminal_type:+-T $terminal_type} \
- ${check_origin:+-O} \
- ${max_clients:+-m $max_clients} \
- ${once:+-o} \
- ${index:+-I $index} \
- ${ipv6:+-6} \
- ${ssl:+-S} \
- ${ssl_cert:+-C $ssl_cert} \
- ${ssl_key:+-K $ssl_key} \
- ${ssl_ca:+-A $ssl_ca} \
- ${debug:+-d $debug}
- config_list_foreach "$1" client_option "procd_append_param command -t"
- procd_append_param command $command
- procd_set_param stdout 1
- procd_set_param stderr 1
- procd_close_instance
- }
-
- start_service() {
- config_load "$NAME"
- config_foreach validate_section_ttyd ttyd ttyd_instance
- }
-
- shutdown() {
- # close all open connections
- killall "$NAME"
- }
-
- service_triggers() {
- procd_add_reload_trigger "$NAME"
- }
|