From a2483d3c5dd8f7d5fc89473f72c20bd98bd6d423 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Sat, 30 May 2026 23:46:27 +0800 Subject: [PATCH] fix config --- install_service.sh | 87 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 26 deletions(-) diff --git a/install_service.sh b/install_service.sh index 243b7e5..4ae3154 100755 --- a/install_service.sh +++ b/install_service.sh @@ -21,9 +21,11 @@ SERVICE_GROUP="${SERVICE_GROUP:-$(id -gn "$SERVICE_USER")}" # "service_group" # ) # -# Environment variables are rendered into the corresponding systemd service -# file by service_env_lines(), using the [prod] sections from iot/env.file and +# IOT_ENV and EFKA_ENV are rendered into the corresponding systemd service +# file as Environment= lines, using the [prod] sections from iot/env.file and # efka/env.file. Directory creation is driven by those service env values. +# IOT_DIR_ENV_KEYS and EFKA_DIR_ENV_KEYS list env keys whose values are +# directories that must be created if they do not exist. # # Use {install_dir}, {work_dir} and {service_name} in commands and directories. # service_user and service_group are optional. @@ -37,6 +39,19 @@ INSTALL_IOT=( "" ) +IOT_ENV=( + "IOT_API_URL=http://127.0.0.1/api/v1" + "ENDPOINT_ROOT_DIR=/var/lib/endpoint/database/" + "ENDPOINT_LOG_PATH=/var/lib/endpoint/endpoint_log" + "IOT_MNESIA_DIR=/var/lib/iot/mnesia/" +) + +IOT_DIR_ENV_KEYS=( + "ENDPOINT_ROOT_DIR" + "ENDPOINT_LOG_PATH" + "IOT_MNESIA_DIR" +) + INSTALL_EFKA=( "efka" "https://punchsky.cn/down/efka-0.1.0.tar.gz" @@ -45,6 +60,22 @@ INSTALL_EFKA=( "" "" ) + +EFKA_ENV=( + "EFKA_DETS_DIR=/var/lib/efka/dets/" + "EFKA_IOT_HOST=localhost" + "EFKA_AUTH_UUID=qbxmjyzrkpntfgswaevodhluicqzxplkm" + "EFKA_AUTH_TOKEN=zpxlkvmqwnbghytrujsdieofazxcvbnm" + "EFKA_DOCKER_ROOT_DIR=/var/lib/efka/docker/" + "EFKA_MNESIA_DIR=/var/lib/efka/mnesia" +) + +EFKA_DIR_ENV_KEYS=( + "EFKA_DETS_DIR" + "EFKA_DOCKER_ROOT_DIR" + "EFKA_MNESIA_DIR" +) + TEMP_FILES=() INSTALLED_SERVICES=() @@ -68,6 +99,10 @@ Options: Array config inside script: INSTALL_IOT INSTALL_EFKA + IOT_ENV + EFKA_ENV + IOT_DIR_ENV_KEYS + EFKA_DIR_ENV_KEYS Package format: INSTALL_=( @@ -298,54 +333,54 @@ validate_environment_line() { service_env_lines() { local service_name="$1" + local env_array_name="" + local env_count + local index + local env_line case "$service_name" in iot) - cat <<'EOF' -IOT_API_URL=http://127.0.0.1/api/v1 -ENDPOINT_ROOT_DIR=/var/lib/endpoint/database/ -ENDPOINT_LOG_PATH=/var/lib/endpoint/endpoint_log -IOT_MNESIA_DIR=/var/lib/iot/mnesia/ -EOF + env_array_name="IOT_ENV" ;; efka) - cat <<'EOF' -EFKA_DETS_DIR=/var/lib/efka/dets/ -EFKA_IOT_HOST=localhost -EFKA_AUTH_UUID=qbxmjyzrkpntfgswaevodhluicqzxplkm -EFKA_AUTH_TOKEN=zpxlkvmqwnbghytrujsdieofazxcvbnm -EFKA_DOCKER_ROOT_DIR=/var/lib/efka/docker/ -EFKA_MNESIA_DIR=/var/lib/efka/mnesia -EOF + env_array_name="EFKA_ENV" ;; *) return 0 ;; esac + + eval "env_count=\${#${env_array_name}[@]}" + for ((index=0; index