新增环境安装 Commands: - /aide:install-win - Windows 环境安装命令 - /aide:install-linux - Linux 环境安装命令 新增离线安装程序: - aide-program/offline-installer/windows/ - aide-program/offline-installer/linux/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
117 lines
2.0 KiB
Plaintext
117 lines
2.0 KiB
Plaintext
@startuml offline-installer-logic
|
|
title 离线安装程序执行逻辑
|
|
|
|
start
|
|
|
|
:读取程序所在目录;
|
|
|
|
partition "资源检查" {
|
|
:读取 resources.json;
|
|
note right
|
|
包含:
|
|
- uv 安装包路径
|
|
- Java JRE 安装包路径
|
|
- 校验和信息
|
|
end note
|
|
|
|
:检查必需资源文件;
|
|
|
|
if (所有资源存在?) then (是)
|
|
:验证文件校验和;
|
|
if (校验通过?) then (是)
|
|
:继续安装;
|
|
else (否)
|
|
:报告损坏的文件;
|
|
:提示重新下载;
|
|
stop
|
|
endif
|
|
else (否)
|
|
:列出缺失的资源;
|
|
:显示下载链接;
|
|
stop
|
|
endif
|
|
}
|
|
|
|
partition "安装模式" {
|
|
if (有 --silent 参数?) then (是)
|
|
:静默安装模式;
|
|
:使用默认配置;
|
|
else (否)
|
|
:交互式安装;
|
|
:显示安装选项;
|
|
:等待用户确认;
|
|
endif
|
|
}
|
|
|
|
partition "执行安装" {
|
|
:=== 安装 uv ===;
|
|
|
|
if (Windows?) then (是)
|
|
:解压 uv Windows 包;
|
|
:添加到用户 PATH;
|
|
else (Linux)
|
|
:解压 uv Linux 包;
|
|
:安装到 ~/.local/bin;
|
|
:更新 shell 配置;
|
|
endif
|
|
|
|
:验证 uv 可用;
|
|
|
|
:=== 安装 Python ===;
|
|
:运行 uv python install;
|
|
note right: 使用 uv 管理 Python
|
|
:验证 Python 可用;
|
|
|
|
:=== 安装 Java JRE ===;
|
|
|
|
if (Windows?) then (是)
|
|
if (MSI 安装包?) then (是)
|
|
:运行 MSI 静默安装;
|
|
else (ZIP 包)
|
|
:解压到指定目录;
|
|
:配置 JAVA_HOME;
|
|
:添加到 PATH;
|
|
endif
|
|
else (Linux)
|
|
:解压 tarball 到 /opt/java;
|
|
:创建符号链接;
|
|
:更新 alternatives;
|
|
endif
|
|
|
|
:验证 Java 可用;
|
|
}
|
|
|
|
partition "aide 配置" {
|
|
:检测 aide-program 位置;
|
|
:添加 aide 到 PATH;
|
|
|
|
if (Windows?) then (是)
|
|
:更新用户环境变量;
|
|
else (Linux)
|
|
:追加到 shell 配置文件;
|
|
endif
|
|
}
|
|
|
|
:=== 安装验证 ===;
|
|
|
|
:显示安装结果;
|
|
note right
|
|
- uv 版本
|
|
- Python 版本
|
|
- Java 版本
|
|
- aide 路径
|
|
end note
|
|
|
|
:运行 aide env ensure --runtime;
|
|
|
|
if (全部通过?) then (是)
|
|
:安装成功;
|
|
:显示后续使用提示;
|
|
else (否)
|
|
:显示失败项;
|
|
:提供故障排除建议;
|
|
endif
|
|
|
|
stop
|
|
@enduml
|