Render deploy config from template
This commit is contained in:
parent
de77e2ae85
commit
ace8dcde72
@ -32,6 +32,18 @@ LOGS_DIR="$RUNTIME_DIR/logs"
|
||||
ALARMS_DIR="$RUNTIME_DIR/alarms"
|
||||
CLIPS_DIR="$RUNTIME_DIR/clips"
|
||||
|
||||
# 默认使用模板/profile/overlay 渲染部署配置。可通过环境变量覆盖:
|
||||
# DEPLOY_CONFIG_TEMPLATE=configs/templates/workshop_face_shoe_alarm.json
|
||||
# DEPLOY_CONFIG_PROFILE=configs/profiles/local_3588_test.json
|
||||
# DEPLOY_CONFIG_OVERLAYS="configs/overlays/face_debug.json configs/overlays/production_quiet.json"
|
||||
# DEPLOY_CONFIG_ID=local_3588_face_debug
|
||||
# DEPLOY_CONFIG_VERSION=20260419.001
|
||||
DEPLOY_CONFIG_TEMPLATE="${DEPLOY_CONFIG_TEMPLATE:-configs/templates/workshop_face_shoe_alarm.json}"
|
||||
DEPLOY_CONFIG_PROFILE="${DEPLOY_CONFIG_PROFILE:-configs/profiles/local_3588_test.json}"
|
||||
DEPLOY_CONFIG_OVERLAYS="${DEPLOY_CONFIG_OVERLAYS:-configs/overlays/face_debug.json}"
|
||||
DEPLOY_CONFIG_ID="${DEPLOY_CONFIG_ID:-local_3588_face_debug}"
|
||||
DEPLOY_CONFIG_VERSION="${DEPLOY_CONFIG_VERSION:-$(date +%Y%m%d.%H%M%S)}"
|
||||
|
||||
# 创建必要的运行时目录
|
||||
create_runtime_dirs() {
|
||||
echo -e "${CYAN}[创建运行时目录]${NC}"
|
||||
@ -262,9 +274,62 @@ cmd_install_media_server() {
|
||||
echo -e "${GREEN}✓${NC} Media Server 安装完成"
|
||||
}
|
||||
|
||||
# 渲染模板化部署配置
|
||||
render_template_config() {
|
||||
local template_path="$PROJECT_DIR/$DEPLOY_CONFIG_TEMPLATE"
|
||||
local profile_path="$PROJECT_DIR/$DEPLOY_CONFIG_PROFILE"
|
||||
local render_tool="$PROJECT_DIR/tools/render_config.py"
|
||||
local rendered_at
|
||||
local out_file
|
||||
local overlay_args=()
|
||||
local overlay_path
|
||||
|
||||
if [ ! -f "$render_tool" ] || [ ! -f "$template_path" ] || [ ! -f "$profile_path" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
rendered_at="$(date -Iseconds)"
|
||||
out_file="/tmp/rk3588-media-server-${DEPLOY_CONFIG_ID}-${DEPLOY_CONFIG_VERSION}.json"
|
||||
|
||||
for overlay in $DEPLOY_CONFIG_OVERLAYS; do
|
||||
overlay_path="$PROJECT_DIR/$overlay"
|
||||
if [ ! -f "$overlay_path" ]; then
|
||||
echo -e "${YELLOW}警告: overlay 不存在,跳过: $overlay${NC}"
|
||||
continue
|
||||
fi
|
||||
overlay_args+=(--overlay "$overlay_path")
|
||||
done
|
||||
|
||||
echo -e "${CYAN}[渲染模板配置]${NC}"
|
||||
echo " template: $DEPLOY_CONFIG_TEMPLATE"
|
||||
echo " profile: $DEPLOY_CONFIG_PROFILE"
|
||||
echo " overlays: ${DEPLOY_CONFIG_OVERLAYS:-<none>}"
|
||||
echo " config_id: $DEPLOY_CONFIG_ID"
|
||||
echo " config_version: $DEPLOY_CONFIG_VERSION"
|
||||
|
||||
python3 "$render_tool" \
|
||||
--template "$template_path" \
|
||||
--profile "$profile_path" \
|
||||
"${overlay_args[@]}" \
|
||||
--config-id "$DEPLOY_CONFIG_ID" \
|
||||
--config-version "$DEPLOY_CONFIG_VERSION" \
|
||||
--rendered-at "$rendered_at" \
|
||||
--out "$out_file"
|
||||
|
||||
cp "$out_file" "$INSTALL_DIR/etc/media-server.json"
|
||||
echo -e "${GREEN}✓${NC} 已渲染部署配置: $out_file"
|
||||
return 0
|
||||
}
|
||||
|
||||
# 选择配置文件
|
||||
select_config() {
|
||||
echo -e "${CYAN}[选择配置文件]${NC}"
|
||||
|
||||
if render_template_config; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo -e "${YELLOW}模板渲染不可用,回退到旧配置文件选择流程${NC}"
|
||||
|
||||
# 查找所有可用的配置文件
|
||||
CONFIGS=()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user