问题: - 100+ 处硬编码路径 /Users/accusys - 无法在不同用户环境部署 - 配置文件路径固定 解决方案: 1. ✅ 创建 paths.rs 模块 - get_home_dir() - 获取用户主目录 - get_momentry_core_root() - Core API 根目录 - get_markbase_root() - MarkBase 根目录 - get_studio_root() - Studio 根目录 - get_storage_root() - 存储根目录 - 环境变量优先 > 用户主目录推断 2. ✅ 修改 main.rs - 移除所有硬编码路径 - 使用动态路径函数 - 支持环境变量配置 3. ✅ 创建配置模板 - admin_config.json.template - .env.template - 使用 {{HOME}} 占位符 4. ✅ 创建自动化脚本 - install.sh - 通用安装脚本 - generate_config.sh - 配置生成脚本 - 自动检测用户环境 特性: - ✅ 支持任意用户环境 - ✅ 自动检测用户主目录 - ✅ 环境变量优先级控制 - ✅ 一键安装部署 测试: - ✅ 编译通过 (cargo check) - ⚠️ 需要在新环境测试 使用方法: 1. 克隆项目 2. ./install.sh 3. 编辑 .env 4. npm run proxy 适用环境: - m5max48: /Users/accusys - m4promini: /Users/nextorageai - 任意 macOS 环境
76 lines
2.5 KiB
Bash
Executable File
76 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Momentry Studio - 配置文件生成脚本
|
|
# 用途: 根据当前用户环境生成 admin_config.json
|
|
# 使用: ./generate_config.sh
|
|
|
|
set -e
|
|
|
|
# 获取用户主目录
|
|
USER_HOME="${HOME:-$(pwd)}"
|
|
STUDIO_ROOT="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
echo "================================================================================"
|
|
echo " Momentry Studio - 配置文件生成"
|
|
echo "================================================================================"
|
|
echo ""
|
|
echo "用户主目录: ${USER_HOME}"
|
|
echo "Studio 根目录: ${STUDIO_ROOT}"
|
|
echo ""
|
|
|
|
# 设置默认值
|
|
PYTHON_PATH="${PYTHON_PATH:-/opt/homebrew/bin/python3.11}"
|
|
FFMPEG_PATH="${FFMPEG_PATH:-/opt/homebrew/bin/ffmpeg}"
|
|
MEDIA_BASE_URL="${MEDIA_BASE_URL:-https://wp.momentry.ddns.net}"
|
|
SERVE_BASE_URL="${SERVE_BASE_URL:-https://m5wp.momentry.ddns.net/files}"
|
|
|
|
# 检查模板文件
|
|
TEMPLATE_FILE="${STUDIO_ROOT}/config/admin_config.json.template"
|
|
if [ ! -f "${TEMPLATE_FILE}" ]; then
|
|
echo "❌ 错误: 找不到模板文件 ${TEMPLATE_FILE}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "配置值:"
|
|
echo " - Python: ${PYTHON_PATH}"
|
|
echo " - FFmpeg: ${FFMPEG_PATH}"
|
|
echo " - Media Base URL: ${MEDIA_BASE_URL}"
|
|
echo " - Serve Base URL: ${SERVE_BASE_URL}"
|
|
echo ""
|
|
|
|
# 生成配置文件
|
|
OUTPUT_FILE="${STUDIO_ROOT}/config/admin_config.json"
|
|
|
|
echo "生成配置文件..."
|
|
sed -e "s|{{HOME}}|${USER_HOME}|g" \
|
|
-e "s|{{PYTHON_PATH}}|${PYTHON_PATH}|g" \
|
|
-e "s|{{FFMPEG_PATH}}|${FFMPEG_PATH}|g" \
|
|
-e "s|{{MEDIA_BASE_URL}}|${MEDIA_BASE_URL}|g" \
|
|
-e "s|{{SERVE_BASE_URL}}|${SERVE_BASE_URL}|g" \
|
|
"${TEMPLATE_FILE}" > "${OUTPUT_FILE}"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ 配置文件已生成: ${OUTPUT_FILE}"
|
|
echo ""
|
|
echo "生成的路径:"
|
|
echo " - Output Dir: ${USER_HOME}/momentry/output"
|
|
echo " - Backup Dir: ${USER_HOME}/momentry/backup"
|
|
echo " - Scripts Dir: ${USER_HOME}/momentry_core/scripts"
|
|
echo " - Storage Root: ${USER_HOME}/momentry/var/sftpgo/data"
|
|
else
|
|
echo "❌ 配置文件生成失败"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "================================================================================"
|
|
echo " ✅ 完成"
|
|
echo "================================================================================"
|
|
echo ""
|
|
echo "下一步:"
|
|
echo " 1. 检查生成的配置: cat ${OUTPUT_FILE}"
|
|
echo " 2. 如需自定义,设置环境变量后重新运行:"
|
|
echo " export PYTHON_PATH=/your/path"
|
|
echo " export FFMPEG_PATH=/your/path"
|
|
echo " ./generate_config.sh"
|
|
echo "" |