op-packages/luci-app-kodexplorer/root/etc/init.d/kodexplorer
github-actions[bot] 32600acc60 🌴 Sync 2026-03-05 23:51:42
2026-03-05 23:51:42 +08:00

86 lines
2.8 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (C) 2018-2022 Lienol <lawlienol@gmail.com>
START=99
CONFIG="kodexplorer"
TEMP_PATH="/var/etc/$CONFIG"
[ -f /etc/nginx/conf.d/luci.locations ] && {
NGINX_CONFIG="/etc/nginx/conf.d/$CONFIG.conf"
NGINX_TEMPLATE="nginx.server.conf.template"
} || {
NGINX_CONFIG="$TEMP_PATH/nginx.conf"
NGINX_TEMPLATE="nginx.conf.template"
}
PHP_CONFIG="$TEMP_PATH/php.ini"
PHP_FPM_CONFIG="$TEMP_PATH/php-fpm.conf"
PHP_FPM_SOCK="$TEMP_PATH/php-fpm.sock"
config_t_get() {
local index=0
[ -n "$4" ] && index=$4
local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null)
echo ${ret:=$3}
}
gen_nginx_config() {
ipv6=$(config_t_get global ipv6 0)
port=$(config_t_get global port)
[ "$(config_t_get global https 0)" == "1" ] && {
port="$port ssl"
ssl_certificate="ssl_certificate $(config_t_get global certificate);"
ssl_certificate_key="ssl_certificate_key $(config_t_get global key);"
}
sed -e "s#|PID|#$TEMP_PATH/nginx.pid#g" \
-e "s#|PORT|#$port#g" \
-e "s#|ssl_certificate|#$ssl_certificate#g" \
-e "s#|ssl_certificate_key|#$ssl_certificate_key#g" \
-e "s#|project_directory|#$project_directory#g" \
-e "s#|SOCK|#$PHP_FPM_SOCK#g" \
-e "s#|upload_max_filesize|#$upload_max_filesize#g" \
-e "s#|temp_path|#$TEMP_PATH/temp#g" \
/etc/$CONFIG/$NGINX_TEMPLATE > $1
[ "$ipv6" = "0" ] && sed -i '/listen \[::\]:/d' $1
}
gen_php_config() {
sed -e "s#|project_directory|#$project_directory#g" \
-e "s#|open_basedir|#$open_basedir#g" \
-e "s#|memory_limit|#$memory_limit#g" \
-e "s#|upload_max_filesize|#$upload_max_filesize#g" \
/etc/$CONFIG/php.ini.template > $PHP_CONFIG
sed -e "s#|PID|#$TEMP_PATH/php-fpm.pid#g" \
-e "s#|ERROR_LOG|#$TEMP_PATH/php-fpm.log#g" \
-e "s#|SOCK|#$PHP_FPM_SOCK#g" \
/etc/$CONFIG/php-fpm.conf.template > $PHP_FPM_CONFIG
}
start() {
ENABLED=$(config_t_get global enable 0)
[ "$ENABLED" = "0" ] && return 0
mkdir -p $TEMP_PATH $TEMP_PATH/temp /var/log/nginx /var/lib/nginx
memory_limit=$(config_t_get global memory_limit 64M)
upload_max_filesize=$(config_t_get global upload_max_filesize 64M)
project_directory=$(config_t_get global project_directory)
open_basedir=$(config_t_get global open_basedir "/")
open_basedir=$(echo $open_basedir | sed "s/ /:/g")
gen_php_config
/usr/bin/php8-fpm -c $PHP_CONFIG -R -y $PHP_FPM_CONFIG
gen_nginx_config $NGINX_CONFIG
[ -f /etc/nginx/conf.d/luci.locations ] && /etc/init.d/nginx reload || /usr/sbin/nginx -c $NGINX_CONFIG >/dev/null 2>&1 &
}
stop() {
[ -f /etc/nginx/conf.d/luci.locations ] && (rm -f $NGINX_CONFIG; /etc/init.d/nginx reload) || /usr/sbin/nginx -c $NGINX_CONFIG -s stop >/dev/null 2>&1
[ -f "$TEMP_PATH/php-fpm.pid" ] && kill -2 $(cat $TEMP_PATH/php-fpm.pid) >/dev/null 2>&1
rm -rf $TEMP_PATH $NGINX_CONFIG
}
restart() {
stop
start
}