# catia-v6r2025-cli **Repository Path**: xuscode1/catia-v6r2025-cli ## Basic Information - **Project Name**: catia-v6r2025-cli - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-15 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # catia-v6r2025-cli — IRM 安装脚本测试项目 演示如何开发一个 `irm https://xxx/install | iex` 模式的 CLI 工具安装脚本。 ## 项目结构 ``` catia-v6r2025-cli/ ├── server.py # 本地 HTTP 托管服务器 ├── www/ # 被托管的文件 (模拟远程服务器) │ ├── install.ps1 # IRM 入口脚本 → 用户下载并执行的安装器 │ └── cli/ │ ├── catia-v6r2025-cli.ps1 # 实际的 CLI 工具 (文本) │ └── demo-tool.cmd # 演示可执行文件 (替换为 .exe 即可) ├── test-irm.ps1 # PS 本地安装测试 (不依赖服务器) ├── test_server.py # Python 端到端模拟测试 └── README.md ``` ## IRM 工作流程 ``` 用户 服务器 安装目录 │ │ │ │ irm /install | iex │ │ ├──────────────────────────►│ │ │ │ │ │ 返回 install.ps1 内容 │ │ │◄──────────────────────────┤ │ │ │ │ │ 执行 install 脚本 │ │ │ ├─ 检测系统 │ │ │ ├─ 创建安装目录 ──────────────────────────────────────►│ │ ├─ 下载 CLI 脚本─────►│ │ │ │◄─────────────────────│ │ │ ├─ 创建 .cmd 启动脚本 ─────────────────────────────────►│ │ ├─ 配置 PATH ──────────────────────────────────────────►│ │ └─ 安装完成! │ │ │ │ │ catia-v6r2025-cli help │ │ ├──────────────────────────────────────────────────────────►│ │ │ │ ``` ## 快速开始 ### 1. 快速验证 (Python 模拟) ```bash python test_server.py ``` 纯 Python 模拟整个 IRM 下载安装流程,无需 PowerShell。 ### 2. 本地 PS 测试 ```powershell cd catia-v6r2025-cli .\test-irm.ps1 ``` 模拟完整的安装流程,使用临时目录。 ### 3. 启动服务器 + IRM 方式 ```powershell # 终端 1: 启动托管服务器 python server.py # 终端 2: 通过 IRM 安装 (模拟远程安装) irm http://localhost:8765/install | iex ``` # 在线下载 ``` iex(irm https://gitee.com/xuscode1/catia-v6r2025-cli/raw/master/www/install-cli.ps1) ``` ### 4. 使用 CLI ```powershell catia-v6r2025-cli help catia-v6r2025-cli version catia-v6r2025-cli doctor catia-v6r2025-cli new my-catia-project ``` ## 开发指南 ### install.ps1 的设计原则 1. **短小精悍** — 入口脚本只做下载 + 安装,不做复杂逻辑 2. **幂等** — 可以安全地重复运行 3. **检测先行** — 检查 PowerShell 版本、网络连通性 4. **友好反馈** — 每个步骤都有彩色输出 5. **PATH 处理** — 安装后自动配置环境变量 ### 如何下载 .exe / 二进制文件 关键代码在 `install.ps1` 的 `$Files` 数组中,**.ps1 和 .exe 下载写完全相同**: ```powershell # 只需要把文件放到 www/cli/ 目录,然后在 install.ps1 中添加一行: $Files = @( @{ Url = "cli/catia-v6r2025-cli.ps1"; Type = "ps1" } # 文本文件 @{ Url = "cli/catiav6-launcher.exe"; Type = "exe" } # 二进制 .exe @{ Url = "cli/sqlite3.dll"; Type = "exe" } # DLL 也是二进制 ) # 下载统一使用 Invoke-WebRequest -OutFile,自动处理文本/二进制 foreach ($file in $Files) { Invoke-WebRequest -Uri "$Server/$($file.Url)" -OutFile $localPath } ``` **区别**: | 文件类型 | 能否 `irm \| iex` 管道执行 | 必须怎么做 | |----------|---------------------------|------------| | `.ps1` 文本 | ✅ 可以 (irm 返回文本, iex 执行) | `Invoke-WebRequest -OutFile` | | `.exe` 二进制 | ❌ 不能 (二进制不能管道给 iex) | **只能用** `Invoke-WebRequest -OutFile` | **添加新 .exe 的步骤**: 1. 把 `.exe` 放到 `www/cli/` 目录 2. 在 `install.ps1` 的 `$Files` 数组加一行 `@{ Url = "cli/xxx.exe"; Type = "exe" }` 3. 完成 —— 服务器自动托管,安装脚本自动下载 ### 从本地到生产 ```diff # 开发阶段 - irm http://localhost:8765/install | iex # 内网测试 - irm http://192.168.1.100:8765/install | iex # 生产环境 (需要 HTTPS!) + irm https://your-cdn.com/catia-v6r2025-cli/install | iex ``` ### 安全注意事项 - 生产环境**必须使用 HTTPS**,防止中间人攻击 - PowerShell 执行策略可能需要 `Set-ExecutionPolicy RemoteSigned` - 建议对 install.ps1 进行代码签名 - 所有下载文件应校验哈希值 ## 命令参考 | 命令 | 说明 | |------|------| | `version` | 显示版本信息 | | `help` | 帮助信息 | | `new ` | 创建新项目 | | `list` | 列出信息 | | `doctor` | 环境检查 | | `info` | 详细环境信息 |