Files
easiest-claw/resources/installer.nsh
T
钟明原 28e0503cbe feat: 技能市场、工作空间文件树、模型配置引导、i18n精简
- 新增 ClawHub 技能市场:浏览、搜索、安装技能(npx clawhub install)
- 工作空间面板重写:递归显示完整文件树,支持默认应用打开文件
- 引导流程新增模型配置检测步骤,未配置时设置按钮红点提醒
- i18n 精简:仅保留 zh-CN 和 en 两种语言
- 修复会话列表空白闪烁、gateway 事件字段兼容等问题
2026-03-17 13:05:23 +08:00

84 lines
3.2 KiB
NSIS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; installer.nsh — EasiestClaw 自定义 NSIS 安装钩子
; 在安装/卸载时自动添加/删除 Windows Defender 防火墙规则,
; 避免用户首次启动时收到"是否允许连接网络"的拦截弹窗。
; ⚠️ 此文件由 scripts/apply-branding.mjs 从 installer.nsh.template 自动生成,请勿直接编辑。
; 安装详情面板默认展开,用户无需手动点击 "Details" 按钮
; 通过 MUI_PAGE_CUSTOMFUNCTION_SHOW 在安装页面显示时写入提示文字,
; 因为 electron-builder 的 installSection.nsh 会在 section 开头设 SetDetailsPrint none,
; 但 SHOW 回调在 section 执行前触发,此时写入的文字会保留在日志面板中。
!macro customHeader
ShowInstDetails nevershow
ShowUnInstDetails show
!macroend
!macro customInstall
SetDetailsPrint both
DetailPrint "程序文件安装完成。"
DetailPrint "正在配置 Windows 防火墙规则..."
DetailPrint "删除旧规则(如存在)..."
nsExec::ExecToStack 'netsh advfirewall firewall delete rule name="EasiestClaw"'
Pop $0
DetailPrint "添加入站规则(TCP 18789)..."
nsExec::ExecToStack 'netsh advfirewall firewall add rule name="EasiestClaw" dir=in action=allow program="$INSTDIR\EasiestClaw.exe" enable=yes'
Pop $0
DetailPrint "防火墙规则配置完成。"
!macroend
; 卸载时跳过逐文件原子操作(openclaw node_modules 文件极多,会导致卸载极慢),
; 直接批量删除整个安装目录
!macro customUnInit
SetDetailsPrint both
DetailPrint "正在准备卸载..."
!macroend
!macro customRemoveFiles
SetDetailsPrint both
DetailPrint "正在删除程序文件,请稍候..."
; 用 rd /s /q 替代 NSIS 逐文件删除,处理 node_modules 海量文件快几个量级
nsExec::ExecToStack 'cmd /c rd /s /q "$INSTDIR"'
Pop $0
; rd 只能删内容不删自身(如果当前目录在其中),兜底清理
RMDir $INSTDIR
DetailPrint "程序文件删除完成。"
!macroend
!macro customUnInstall
SetDetailsPrint both
DetailPrint "正在移除 Windows 防火墙规则..."
nsExec::ExecToStack 'netsh advfirewall firewall delete rule name="EasiestClaw"'
Pop $0
DetailPrint "防火墙规则已移除。"
; 升级安装时,新安装包会静默(/S)调用旧版卸载程序,此时跳过用户数据清理弹窗
IfSilent done
; 手动卸载时才询问用户是否同时清除用户数据
MessageBox MB_YESNO|MB_ICONQUESTION \
"是否同时删除用户设置和数据?$\n$\n\
选择「是」将彻底清除所有数据(包括配置、缓存和 OpenClaw 运行时),$\n\
选择「否」则保留,重新安装后可自动恢复。" \
IDNO done
; 删除默认 userData 目录(rd /s /q 比 RMDir /r 快很多)
nsExec::ExecToStack 'cmd /c rd /s /q "$APPDATA\easiest-claw-desktop"'
Pop $0
DetailPrint "默认用户数据已清除。"
; 删除自定义数据目录(从注册表读取)
ReadRegStr $0 HKCU "Software\EasiestClaw" "DataDir"
${If} $0 != ""
nsExec::ExecToStack 'cmd /c rd /s /q "$0"'
Pop $1
DetailPrint "自定义数据目录已清除: $0"
${EndIf}
; 清理注册表
DeleteRegKey HKCU "Software\EasiestClaw"
DetailPrint "用户数据已全部清除。"
done:
!macroend