拆分代码;约束cli命令
This commit is contained in:
+31
-20
@@ -1,57 +1,68 @@
|
||||
# TJWater CLI
|
||||
|
||||
独立于服务端主代码的 Python CLI 文件夹,放在 `TJWaterServerBinary/cli/` 下,供 agent 服务器**直接调用并通过 stdout/stderr 参与管道**。
|
||||
独立于服务端主代码的 Python CLI 文件夹,放在 `TJWaterServerBinary/cli/` 下,供 agent 服务器使用**编译后的可执行文件**直接调用,并通过 stdout/stderr 参与管道。
|
||||
|
||||
## 直接使用
|
||||
## 构建可执行产物
|
||||
|
||||
```bash
|
||||
cd TJWaterServerBinary/cli
|
||||
./tjwater help --json
|
||||
python -m pip install -r requirements.txt
|
||||
python -m pip install -r requirements-build.txt
|
||||
chmod +x build.sh
|
||||
./build.sh
|
||||
```
|
||||
|
||||
这个入口文件可以直接参与管道:
|
||||
构建完成后,直接使用编译产物:
|
||||
|
||||
```bash
|
||||
./tjwater help --json | jq
|
||||
./dist/tjwater-cli/tjwater-cli help
|
||||
```
|
||||
|
||||
它会优先使用:
|
||||
1. `cli/.venv/bin/python`
|
||||
2. 环境变量 `PYTHON`
|
||||
3. 当前环境里的 `python`
|
||||
4. 最后回退到 `python3`
|
||||
|
||||
如果需要,也可以显式走 Python:
|
||||
这个可执行文件可以直接参与管道:
|
||||
|
||||
```bash
|
||||
python -m tjwater_agent_cli help --json
|
||||
./dist/tjwater-cli/tjwater-cli help | jq
|
||||
```
|
||||
|
||||
当前采用 `PyInstaller onedir` 方式输出到 `dist/tjwater-cli/`,避免 onefile 在部分 agent/server 环境下依赖临时目录解包执行的问题。
|
||||
|
||||
如果需要在开发时直接走源码入口,也可以显式使用 Python:
|
||||
|
||||
```bash
|
||||
python -m tjwater_cli help
|
||||
```
|
||||
|
||||
## 部署到 agent 服务器
|
||||
|
||||
最简单的方式是把整个 `TJWaterServerBinary/cli/` 文件夹同步到 agent 服务器,然后直接执行:
|
||||
最简单的方式是把 `dist/tjwater-cli/` 整个目录同步到 agent 服务器,然后直接执行:
|
||||
|
||||
```bash
|
||||
./tjwater-cli/tjwater-cli help
|
||||
```
|
||||
|
||||
如果希望打包传输:
|
||||
|
||||
```bash
|
||||
cd TJWaterServerBinary/cli
|
||||
./tjwater help --json
|
||||
tar -C dist -czf tjwater-cli-linux-amd64.tar.gz tjwater-cli
|
||||
```
|
||||
|
||||
如果希望放到 PATH 中:
|
||||
|
||||
```bash
|
||||
chmod +x tjwater
|
||||
ln -s /path/to/TJWaterServerBinary/cli/tjwater /usr/local/bin/tjwater
|
||||
tjwater help --json
|
||||
ln -s /path/to/TJWaterServerBinary/cli/dist/tjwater-cli/tjwater-cli /usr/local/bin/tjwater-cli
|
||||
tjwater-cli help | jq
|
||||
```
|
||||
|
||||
## Python 依赖
|
||||
## 运行与构建依赖
|
||||
|
||||
```bash
|
||||
cd TJWaterServerBinary/cli
|
||||
python -m pip install -r requirements.txt
|
||||
python -m pip install -r requirements-build.txt
|
||||
```
|
||||
|
||||
只保留运行 CLI 必需依赖,不再包含安装包构建相关内容。
|
||||
`requirements.txt` 仅包含运行 CLI 的依赖;`requirements-build.txt` 仅包含生成可执行文件所需的构建依赖。
|
||||
|
||||
## 认证上下文
|
||||
|
||||
|
||||
Reference in New Issue
Block a user