56 lines
2.9 KiB
Markdown
56 lines
2.9 KiB
Markdown
# chongming-cli
|
||
|
||
chongming 网关的命令脚本集合,独立包维护(从 `src/chongming/scripts` 抽离)。
|
||
|
||
## 命令
|
||
|
||
| 命令 | 说明 |
|
||
| ------------ | ------------------------------------------- |
|
||
| `build` | 应用构建打包(PyInstaller / Nuitka) |
|
||
| `build_plugin` | 进程插件项目根直接压缩为可部署 zip |
|
||
| `gen_models` | 从插件配置 `*.toml` 生成 Pydantic 模型 |
|
||
| `gen_plugin` | 生成风格统一的 Worker 插件骨架(`--process` 生成进程插件完整项目) |
|
||
|
||
另有 `chongming_cli.code_content` 模块:将目录下代码文件汇总为 Markdown(`python -m chongming_cli.code_content <dir>`)。
|
||
|
||
## 用法
|
||
|
||
在 chongming 网关项目根目录下(已通过 path/git 依赖安装本包):
|
||
|
||
```bash
|
||
uv run build pyinstaller # 构建打包(默认:明文模块、不带授权)
|
||
uv run build --only mbank # 仅重新打包 .mbank 模块文件(跳过其余流程)
|
||
uv run build --only mbank,vue # 只执行指定步骤
|
||
uv run build --encrypt --license # 对外分发:加密模块 + 注入厂商授权公钥
|
||
uv run build_plugin demo # 进程插件打包 → dist/demo.zip(= workers/demo/ 直接压缩)
|
||
uv run gen_plugin myplugin # 生成 inline 插件骨架
|
||
uv run gen_plugin myplugin --process # 生成进程插件完整项目(workers/myplugin/)
|
||
uv run gen_models config/workers/myplugin src/plugins/myplugin # inline 插件模型
|
||
uv run gen_models workers/myplugin/config/workers/myplugin workers/myplugin/workers/myplugin # 进程插件模型
|
||
```
|
||
|
||
`build --only <step>` 可选步骤:`mbank` / `prepare` / `obfuscate` / `pack` / `clean` / `license_guard` / `vue`,可逗号分隔或重复传多个。
|
||
|
||
`build` 的两个开关默认**都关**(不加参数即内部调试产物:明文模块、不带授权,横幅与构建报告里会回显状态):
|
||
|
||
- `--encrypt`:打开加密与混淆 —— `.mbank` 加密存字节码并写 `.key` 密钥文件、做 PyArmor 混淆
|
||
- `--license`:打开授权 —— 注入厂商授权公钥(缺公钥则构建失败)、跑授权私钥泄漏守卫
|
||
|
||
打包收集清单分两处:网关本体依赖在根 `config.toml` `[pyinstaller_build_import]`;
|
||
内置插件专属依赖(网关本体不 import、只在插件里用)在根目录 `plugins_deps.toml`
|
||
(按插件分节,可选文件),`pack` 时自动并入 `--hidden-import` / `--include-module`。
|
||
|
||
## 项目根目录定位
|
||
|
||
脚本需要在项目根目录下读写 `config/`、`src/plugins/`、`workers/` 等路径。
|
||
本包安装位置不固定(site-packages),因此根目录按以下顺序解析:
|
||
|
||
1. 环境变量 `CHONGMING_ROOT`(显式指定项目根)
|
||
2. 当前工作目录向上查找第一个含 `pyproject.toml` 的目录(即项目根)
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
uv pip install -e utils/cli # 本地可编辑安装
|
||
```
|