#!/bin/sh /etc/rc.common START=93 USE_PROCD=1 get_config() { config_get_bool enabled "$1" enabled 0 config_get data_dir "$1" data_dir "" config_get port "$1" port "8189" } mkdir_p() { [ -d "$1" ] || mkdir -p "$1" } start_service() { config_load kaiplus config_foreach get_config kaiplus if [ "$enabled" != 1 ]; then return 0 fi if [ -z "$data_dir" ]; then logger -t kaiplus "data_dir is empty; please set option data_dir in /etc/config/kaiplus" return 1 fi mkdir_p "$data_dir" umask 077 mkdir_p "$data_dir/workspace" mkdir_p "$data_dir/cache" mkdir_p "$data_dir/config" mkdir_p "$data_dir/state" chmod 0700 "$data_dir/config" "$data_dir/state" logger -t kaiplus "Starting KaiPlus service" procd_open_instance kaiplus procd_set_param env \ KAIPLUS_HOME="$data_dir" \ KAIPLUS_SYSTEM_ROLE="istoreos" \ KAIPLUS_RELEASE_CHANNEL="stable" \ KAIPLUS_AUTH_MODE="openwrt_luci" \ LINKEASE_AUTH_PROVIDER="openwrt_luci" \ KAIPLUS_LISTEN_MODE="tcp" \ REASONIX_CREDENTIALS_STORE="file" procd_set_param command /usr/sbin/kaiplus kaiplus-web procd_append_param command --listen-mode tcp procd_append_param command --addr "0.0.0.0:$port" procd_append_param command --data-dir "$data_dir" procd_append_param command --base-path /apps/kaiplus/ procd_append_param command --system-role istoreos procd_append_param command --release-channel stable procd_set_param stdout 1 procd_set_param stderr 1 procd_set_param respawn procd_close_instance logger -t kaiplus "KaiPlus service started" } service_triggers() { procd_add_reload_trigger "kaiplus" }