mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
116 lines
2.5 KiB
Bash
Executable file
116 lines
2.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
. /lib/functions.sh
|
|
|
|
DEBUG=0
|
|
|
|
get_options() {
|
|
local name sec options tmp
|
|
|
|
name="$1"
|
|
sec="$2"
|
|
tmp="$name.$sec"
|
|
|
|
options=$(uci -X show ${tmp}|grep "${tmp}\."|sed "s/${tmp}\.//g"|sed "s/=.*$//g"|sort|uniq)
|
|
|
|
echo ${options}
|
|
}
|
|
|
|
parse_nginx_server() {
|
|
port=""
|
|
allow_host=""
|
|
protocol="HTTP"
|
|
|
|
# Check if section is already present in userinterface uci
|
|
sec=$(uci -q get userinterface."${1}")
|
|
if [ -n "${sec}" ]; then
|
|
# Section already present
|
|
return 0
|
|
fi
|
|
|
|
# Create a new http_access section
|
|
uci -q set userinterface."${1}"="http_access"
|
|
uci -q set userinterface."${1}".protocol="HTTP"
|
|
for option in $(get_options nginx ${1});
|
|
do
|
|
case ${option} in
|
|
uci_enable)
|
|
config_get_bool tmp "${1}" "${option}" 1
|
|
uci_set nginx ${1} ${option}
|
|
uci -q set userinterface."${1}".enable=$tmp
|
|
;;
|
|
uci_access)
|
|
config_get tmp "${1}" "${option}"
|
|
uci_set nginx ${1} ${option}
|
|
uci -q set userinterface."${1}".access=$tmp
|
|
;;
|
|
uci_interface)
|
|
config_get tmp "${1}" "${option}"
|
|
uci_set nginx ${1} ${option}
|
|
uci -q set userinterface."${1}".interface=$tmp
|
|
;;
|
|
listen)
|
|
config_get tmp "${1}" "${option}"
|
|
port="$(echo ${tmp}|grep -o '[[:digit:]]*'|head -n 1)"
|
|
uci -q set userinterface."${1}".port=$port
|
|
;;
|
|
ssl_certificate)
|
|
uci_set userinterface "${1}" protocol "HTTPS"
|
|
if [ "${DEBUG}" -eq 1 ]; then
|
|
config_get tmp "${1}" "${option}"
|
|
uci_set userinterface "${1}" "_nginx_${option}" "$tmp"
|
|
fi
|
|
;;
|
|
root)
|
|
config_get tmp "${1}" "${option}"
|
|
uci -q set userinterface."${1}".path_prefix=$tmp
|
|
;;
|
|
include)
|
|
allow_host=""
|
|
config_get tmp "${1}" "${option}"
|
|
for i in $tmp; do
|
|
if [[ "${i}" == allow_host_* ]]; then
|
|
allow_host=$(cat /etc/nginx/${i} | grep allow | cut -d' ' -f 2 | cut -d';' -f 1)
|
|
break
|
|
else
|
|
if [ "${DEBUG}" -eq 1 ]; then
|
|
uci_add_list userinterface "${1}" "_nginx_${option}" "$tmp"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
for i in $allow_host; do
|
|
uci_add_list userinterface "${1}" "allow_host" "${i}"
|
|
done
|
|
;;
|
|
server_name|access_log|error_log)
|
|
;;
|
|
*)
|
|
if [ "${DEBUG}" -eq 1 ]; then
|
|
config_get tmp "${1}" "${option}"
|
|
uci_set userinterface "${1}" "_nginx_${option}" "$tmp"
|
|
fi
|
|
;;
|
|
|
|
esac
|
|
done
|
|
}
|
|
|
|
migrate_global_config() {
|
|
local en
|
|
|
|
config_get_bool en global uci_enable ""
|
|
if [ -n "${en}" ]; then
|
|
uci_set userinterface "global" "enable" "${en}"
|
|
else
|
|
uci_set userinterface "global" "enable" "1"
|
|
fi
|
|
}
|
|
|
|
migrate_uci_userinterface() {
|
|
migrate_global_config
|
|
config_load nginx
|
|
config_foreach parse_nginx_server server
|
|
}
|
|
|
|
migrate_uci_userinterface
|