Files
momentry_studio/scripts/verify_default_setup.sh
Momentry Studio 313d42be2f fix: 设置默认账号为 demo/demo123,修复数据路径
问题修复:
1. ✅ 默认账号设置
   - db.rs: 默认密码改为 demo123
   - .env.template: 默认密码改为 demo123
   - install.sh: 默认密码改为 demo123

2. ✅ 数据路径动态化
   - db.rs: 使用 dirs::home_dir() 自动检测用户主目录
   - 默认路径: {HOME}/momentry_studio/data/users
   - 支持通过 MOMENTRY_DATA_DIR 环境变量自定义

验证脚本:
- scripts/verify_default_setup.sh: 验证默认账号和数据路径

目标:
- 安装后可直接使用 demo/demo123 登录
- 数据路径随用户主目录自动调整
- 适用于任何用户环境

影响:
- demo 用户: 密码固定为 demo123
- 数据路径: 自动检测 {HOME}/momentry_studio/data/users
- 安装即可使用,无需额外配置
2026-10-12 15:35:22 +08:00

210 lines
6.5 KiB
Bash
Executable File

#!/bin/bash
# 验证默认账号和数据路径
echo "================================================================================
默认账号和数据路径验证
================================================================================
"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
echo "项目根目录: ${PROJECT_ROOT}"
echo ""
# 1. 检查默认账号
echo "1. 检查默认账号设置"
echo "--------------------------------------------------------------------------------"
# 检查 db.rs
if grep -q '"demo123"' "${PROJECT_ROOT}/src-tauri/src/db.rs"; then
echo "✅ db.rs: 默认密码设置为 demo123"
else
echo "❌ db.rs: 默认密码未设置为 demo123"
fi
# 检查 .env.template
if grep -q "MOMENTRY_DEFAULT_PASSWORD=demo123" "${PROJECT_ROOT}/.env.template"; then
echo "✅ .env.template: 默认密码设置为 demo123"
else
echo "❌ .env.template: 默认密码未设置为 demo123"
fi
# 检查 install.sh
if grep -q 'DEFAULT_PASSWORD="demo123"' "${PROJECT_ROOT}/install.sh"; then
echo "✅ install.sh: 默认密码设置为 demo123"
else
echo "❌ install.sh: 默认密码未设置为 demo123"
fi
echo ""
# 2. 检查数据路径
echo "2. 检查数据路径设置"
echo "--------------------------------------------------------------------------------"
# 检查 db.rs 是否使用动态路径
if grep -q 'dirs::home_dir()' "${PROJECT_ROOT}/src-tauri/src/db.rs"; then
echo "✅ db.rs: 使用动态路径 (dirs::home_dir())"
else
echo "❌ db.rs: 未使用动态路径"
fi
# 检查 db.rs 是否使用绝对路径
if grep -q 'momentry_studio/data/users' "${PROJECT_ROOT}/src-tauri/src/db.rs"; then
echo "✅ db.rs: 使用绝对路径 (momentry_studio/data/users)"
else
echo "❌ db.rs: 未使用绝对路径"
fi
# 检查 paths.rs 是否存在
if [ -f "${PROJECT_ROOT}/src-tauri/src/paths.rs" ]; then
echo "✅ paths.rs: 存在"
# 检查关键函数
if grep -q 'pub fn get_home_dir()' "${PROJECT_ROOT}/src-tauri/src/paths.rs"; then
echo " ✅ get_home_dir() 函数存在"
fi
if grep -q 'pub fn get_momentry_core_root()' "${PROJECT_ROOT}/src-tauri/src/paths.rs"; then
echo " ✅ get_momentry_core_root() 函数存在"
fi
else
echo "❌ paths.rs: 不存在"
fi
echo ""
# 3. 检查环境变量
echo "3. 检查环境变量模板"
echo "--------------------------------------------------------------------------------"
if [ -f "${PROJECT_ROOT}/.env.template" ]; then
echo "✅ .env.template 存在"
# 检查关键环境变量
if grep -q "MOMENTRY_DATA_DIR=" "${PROJECT_ROOT}/.env.template"; then
echo " ✅ MOMENTRY_DATA_DIR 配置存在"
fi
if grep -q "MOMENTRY_CORE_ROOT=" "${PROJECT_ROOT}/.env.template"; then
echo " ✅ MOMENTRY_CORE_ROOT 配置存在"
fi
if grep -q "STORAGE_ROOT=" "${PROJECT_ROOT}/.env.template"; then
echo " ✅ STORAGE_ROOT 配置存在"
fi
else
echo "❌ .env.template 不存在"
fi
echo ""
# 4. 模拟安装测试
echo "4. 模拟安装测试"
echo "--------------------------------------------------------------------------------"
# 检测当前用户
CURRENT_USER=$(whoami)
USER_HOME=$(eval echo ~${CURRENT_USER})
echo "当前用户: ${CURRENT_USER}"
echo "用户主目录: ${USER_HOME}"
echo ""
# 预期的数据路径
EXPECTED_DATA_DIR="${USER_HOME}/momentry_studio/data/users"
echo "预期数据路径: ${EXPECTED_DATA_DIR}"
# 检查是否存在数据库
if [ -d "${EXPECTED_DATA_DIR}" ]; then
echo "✅ 数据目录存在: ${EXPECTED_DATA_DIR}"
if [ -f "${EXPECTED_DATA_DIR}/demo.sqlite" ]; then
echo " ✅ demo.sqlite 存在"
# 检查用户表
sqlite3 "${EXPECTED_DATA_DIR}/demo.sqlite" "SELECT username FROM app_users WHERE username='demo';" 2>/dev/null && {
echo " ✅ demo 用户存在于数据库中"
} || {
echo " ⚠️ demo 用户不存在于数据库中"
}
else
echo " ⚠️ demo.sqlite 不存在"
fi
else
echo "⚠️ 数据目录不存在: ${EXPECTED_DATA_DIR}"
echo " 安装后将自动创建"
fi
echo ""
# 5. 总结
echo "================================================================================
验证总结
================================================================================
"
ISSUES=0
# 检查默认账号
if grep -q '"demo123"' "${PROJECT_ROOT}/src-tauri/src/db.rs" && \
grep -q "MOMENTRY_DEFAULT_PASSWORD=demo123" "${PROJECT_ROOT}/.env.template" && \
grep -q 'DEFAULT_PASSWORD="demo123"' "${PROJECT_ROOT}/install.sh"; then
echo "✅ 默认账号设置正确"
echo " 用户名: demo"
echo " 密码: demo123"
else
echo "❌ 默认账号设置有问题"
ISSUES=$((ISSUES + 1))
fi
echo ""
# 检查数据路径
if grep -q 'dirs::home_dir()' "${PROJECT_ROOT}/src-tauri/src/db.rs" && \
grep -q 'momentry_studio/data/users' "${PROJECT_ROOT}/src-tauri/src/db.rs"; then
echo "✅ 数据路径使用动态路径"
echo " 自动检测用户主目录: ${USER_HOME}"
echo " 数据路径: ${EXPECTED_DATA_DIR}"
else
echo "❌ 数据路径未使用动态路径"
ISSUES=$((ISSUES + 1))
fi
echo ""
if [ $ISSUES -eq 0 ]; then
echo "================================================================================
✅ 所有检查通过
================================================================================
"
echo "准备状态:"
echo " ✅ 默认账号: demo / demo123"
echo " ✅ 数据路径: 自动检测用户主目录"
echo " ✅ 可安装到任何系统"
echo ""
echo "下一步:"
echo " 1. 运行安装: ./scripts/install.sh"
echo " 2. 验证安装: ./scripts/check_user_isolation.sh"
echo " 3. 测试登录: 用户名 demo, 密码 demo123"
else
echo "================================================================================
❌ 发现 ${ISSUES} 个问题
================================================================================
"
echo "需要修复的问题:"
if ! grep -q '"demo123"' "${PROJECT_ROOT}/src-tauri/src/db.rs"; then
echo " - db.rs 需要设置默认密码为 demo123"
fi
if ! grep -q 'dirs::home_dir()' "${PROJECT_ROOT}/src-tauri/src/db.rs"; then
echo " - db.rs 需要使用动态路径"
fi
fi
echo ""
echo "================================================================================
"