- 新增 ClawHub 技能市场:浏览、搜索、安装技能(npx clawhub install) - 工作空间面板重写:递归显示完整文件树,支持默认应用打开文件 - 引导流程新增模型配置检测步骤,未配置时设置按钮红点提醒 - i18n 精简:仅保留 zh-CN 和 en 两种语言 - 修复会话列表空白闪烁、gateway 事件字段兼容等问题
84 lines
3.2 KiB
NSIS
84 lines
3.2 KiB
NSIS
; 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
|