#!/bin/bash ### 配置变更回调(应用设置向导提交后):更新 app.env,向导留空的项保持不变 CFG="${TRIM_PKGETC}/app.env" [ -f "${CFG}" ] || exit 0 if [ -n "${wizard_port}" ]; then sed -i "s|^HY_PORT=.*|HY_PORT=${wizard_port}|" "${CFG}" fi if [ -n "${wizard_dbdir}" ]; then if [ ! -d "${wizard_dbdir}" ]; then if mkdir -p "${wizard_dbdir}" 2>/dev/null; then [ -n "${TRIM_UID}" ] && chown "${TRIM_UID}:${TRIM_GID}" "${wizard_dbdir}" 2>/dev/null else echo "警告:数据目录 ${wizard_dbdir} 创建失败,保持原目录不变" >> "${TRIM_TEMP_LOGFILE}" 2>/dev/null fi fi [ -d "${wizard_dbdir}" ] && sed -i "s|^HY_DB_DIR=.*|HY_DB_DIR=${wizard_dbdir}|" "${CFG}" fi # 管理密码(留空不修改;更新盐+哈希两行,不存在则追加) if [ -n "${wizard_admin_pwd}" ]; then SALT="$(date +%s%N)$RANDOM" HASH="$(printf '%s' "${SALT}${wizard_admin_pwd}" | sha256sum | cut -d' ' -f1)" if grep -q "^ADMIN_PWD_SALT=" "${CFG}"; then sed -i "s|^ADMIN_PWD_SALT=.*|ADMIN_PWD_SALT=${SALT}|" "${CFG}" else echo "ADMIN_PWD_SALT=${SALT}" >> "${CFG}" fi if grep -q "^ADMIN_PWD_SHA256=" "${CFG}"; then sed -i "s|^ADMIN_PWD_SHA256=.*|ADMIN_PWD_SHA256=${HASH}|" "${CFG}" else echo "ADMIN_PWD_SHA256=${HASH}" >> "${CFG}" fi fi echo "$(date '+%Y-%m-%d %H:%M:%S') - config updated port=${wizard_port:-保持} dbdir=${wizard_dbdir:-保持} admin_pwd=$([ -n "${wizard_admin_pwd}" ] && echo 已修改 || echo 保持)" >> "${TRIM_PKGVAR}/app.log" 2>/dev/null exit 0