#!/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 "================================================================================ "