update-client-windows使用说明.md 4.1 KB

update-client.sh Windows 使用说明

概述

update-client.sh 脚本已经过修改,现在支持在 Windows (Git Bash) 环境中运行。该脚本用于从版本服务器下载并更新 H5 应用。

Windows 兼容性改进

1. 操作系统检测

脚本会自动检测运行环境:

  • Windows (Git Bash/MINGW/MSYS/Cygwin)
  • Linux
  • macOS

2. 跨平台临时目录

  • Windows: 使用 %TEMP%%TMP% 环境变量
  • Linux/macOS: 使用 /tmp

3. 用户名处理

  • Windows: 优先使用 %USERNAME% 环境变量
  • Linux/macOS: 使用 $USER 环境变量

4. 锁文件路径

锁文件会根据操作系统自动选择合适的临时目录,避免路径问题。

在 Windows 上运行

前置要求

  1. Git Bash: 确保已安装 Git for Windows
  2. 必需工具: Git Bash 通常已包含以下工具
    • curl
    • wget
    • tar
    • grep
    • sort

运行方式

1. 交互模式

./update-client.sh

脚本会提示您输入:

  • 用户名 (默认: deploy)
  • 密码
  • 下载目录 (默认: ./h5)
  • 是否包含 static 文件夹
  • 版本选择

2. 非交互模式(推荐)

# 不包含 static 文件夹
./update-client.sh -u deploy -p mypassword -d ./h5 -v latest -y

# 包含 static 文件夹
./update-client.sh -u deploy -p mypassword -d ./h5 -v latest -y --include-static

# 指定特定版本
./update-client.sh -u deploy -p mypassword -v v1.1.5-20251129-062104 -y

3. 静默模式

./update-client.sh -u deploy -p mypassword -v latest -y -s

命令行选项

选项 说明
-u, --user USERNAME 指定用户名(默认: deploy)
-p, --password PASS 指定密码
-d, --dir DIRECTORY 指定下载目录(默认: ./h5)
-v, --version VERSION 指定版本号(默认: latest)
-i, --include-static 包含 static 文件夹更新
-y, --yes 跳过确认提示
-s, --silent 静默模式(最小输出)
-h, --help 显示帮助信息

脚本运行流程

  1. 检测操作系统: 自动识别 Windows/Linux/macOS
  2. 初始化日志: 在 ./logs 目录创建日志文件
  3. 检查依赖工具: 确认 curl, wget, tar 可用
  4. 创建锁文件: 防止并发执行
  5. 服务器连接测试: 验证用户名和密码
  6. 版本选择: 显示可用版本列表
  7. 备份当前版本: 自动备份现有文件
  8. 下载更新: 从服务器下载指定版本
  9. 验证完整性: 检查 MD5/SHA256 校验和(如果存在)
  10. 清理: 删除锁文件

日志文件

日志文件保存在 ./logs 目录,文件名格式:

update_YYYYMMDD_HHMMSS.log

故障排除

1. 权限问题

如果遇到权限错误,在 Git Bash 中运行:

chmod +x update-client.sh

2. 临时目录问题

如果 %TEMP% 不可用,脚本会回退到 /tmp

3. 锁文件残留

如果脚本异常退出,可能留下锁文件:

# 手动删除锁文件
rm -f $TEMP/update-client-$USERNAME.lock

4. 工具缺失

确认 Git Bash 包含所需工具:

which curl wget tar

主要修改内容

  1. 添加 detect_os() 函数: 自动检测操作系统类型
  2. 添加 show_os_info() 函数: 显示运行环境信息
  3. 跨平台临时目录: 根据 OS 选择合适的临时路径
  4. 用户名兼容: 支持 Windows %USERNAME% 变量
  5. 锁文件路径: 使用跨平台兼容的临时目录

示例输出

[INFO] 日志文件: ./logs/update_20251218_103000.log
[INFO] 检测到操作系统: windows
[INFO] 临时目录: C:\Users\YourName\AppData\Local\Temp
[INFO] 当前用户: YourName
[INFO] 检查依赖工具...
[✓] 依赖工具检查通过
[INFO] 已创建锁文件
[INFO] 用户名: deploy
...

注意事项

  1. 脚本会自动备份现有文件,备份文件名包含时间戳
  2. 默认不更新 static 文件夹,需要时使用 -i 参数
  3. 建议使用非交互模式进行自动化部署
  4. 日志文件包含详细的执行信息,便于故障排查

兼容性

✅ Windows 10/11 (Git Bash)
✅ Linux (所有发行版)
✅ macOS
✅ WSL (Windows Subsystem for Linux)
✅ Cygwin
✅ MSYS2