含 app/server/server.cjs 服务端、app/www 网页(admin/auth/项目云/库备份/settings)、 app/ui 图标、cmd 安装脚本、config、wizard、manifest、图标与对接文档。 按仓库规则排除构建产物 *.fpk 与 .mimosa 缓存。
51 lines
1.9 KiB
Bash
Executable File
51 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
### 安装完成回调:把向导值合并写入 app.env(cmd/main 与服务进程读取)。
|
|
### 合并式:只覆盖本脚本管理的键(HY_PORT/HY_DB_DIR/ADMIN_*),设置页保存的其他键(如 HY_REG_OPEN)保留。
|
|
|
|
mkdir -p "${TRIM_PKGETC}" 2>/dev/null
|
|
CFG="${TRIM_PKGETC}/app.env"
|
|
|
|
PORT="${wizard_port}"
|
|
DBDIR="${wizard_dbdir}"
|
|
[ -z "${PORT}" ] && PORT="${TRIM_SERVICE_PORT:-12701}"
|
|
|
|
# 向导填了自定义数据目录:目录不存在则创建,新建目录归属应用用户(已存在的目录不动,由 ACL/目录授权控制)
|
|
if [ -n "${DBDIR}" ] && [ ! -d "${DBDIR}" ]; then
|
|
if mkdir -p "${DBDIR}" 2>/dev/null; then
|
|
[ -n "${TRIM_UID}" ] && chown "${TRIM_UID}:${TRIM_GID}" "${DBDIR}" 2>/dev/null
|
|
else
|
|
echo "警告:数据目录 ${DBDIR} 创建失败,将使用默认目录" >> "${TRIM_TEMP_LOGFILE}" 2>/dev/null
|
|
DBDIR=""
|
|
fi
|
|
fi
|
|
|
|
# 合并旧配置:跳过本脚本管理的键,其余原样保留
|
|
TMP="${CFG}.new"
|
|
: > "${TMP}"
|
|
if [ -f "${CFG}" ]; then
|
|
while IFS='=' read -r k v; do
|
|
[ -z "${k}" ] && continue
|
|
case "${k}" in
|
|
HY_PORT|HY_DB_DIR|ADMIN_PWD_SALT|ADMIN_PWD_SHA256) ;;
|
|
*) printf '%s=%s\n' "${k}" "${v}" >> "${TMP}" ;;
|
|
esac
|
|
done < "${CFG}"
|
|
fi
|
|
|
|
# 管理密码(向导必填;留空则保留旧哈希,若从未设置过则服务端登录时会提示未设置)
|
|
if [ -n "${wizard_admin_pwd}" ]; then
|
|
SALT="$(date +%s%N)$RANDOM${TRIM_APPNAME:-hy}"
|
|
HASH="$(printf '%s' "${SALT}${wizard_admin_pwd}" | sha256sum | cut -d' ' -f1)"
|
|
printf 'ADMIN_PWD_SALT=%s\n' "${SALT}" >> "${TMP}"
|
|
printf 'ADMIN_PWD_SHA256=%s\n' "${HASH}" >> "${TMP}"
|
|
fi
|
|
|
|
printf 'HY_PORT=%s\n' "${PORT}" >> "${TMP}"
|
|
printf 'HY_DB_DIR=%s\n' "${DBDIR}" >> "${TMP}"
|
|
mv "${TMP}" "${CFG}"
|
|
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - installed v${TRIM_APPVER} port=${PORT} dbdir=${DBDIR:-默认} admin_pwd=$([ -n "${wizard_admin_pwd}" ] && echo 已设置 || echo 保持)" >> "${TRIM_PKGVAR}/app.log" 2>/dev/null
|
|
|
|
exit 0
|