# TJWater CLI 独立于服务端主代码的 Python CLI 文件夹,放在 `TJWaterServerBinary/cli/` 下,供 agent 服务器使用**编译后的可执行文件**直接调用,并通过 stdout/stderr 参与管道。 ## 构建可执行产物 ```bash cd TJWaterServerBinary/cli python -m pip install -r requirements.txt python -m pip install -r requirements-build.txt chmod +x build.sh ./build.sh ``` 构建完成后,直接使用编译产物: ```bash ./dist/tjwater-cli/tjwater-cli help ``` 这个可执行文件可以直接参与管道: ```bash ./dist/tjwater-cli/tjwater-cli help | jq ``` 当前采用 `PyInstaller onedir` 方式输出到 `dist/tjwater-cli/`,避免 onefile 在部分 agent/server 环境下依赖临时目录解包执行的问题。 如果需要在开发时直接走源码入口,也可以显式使用 Python: ```bash python -m tjwater_cli help ``` ## 部署到 agent 服务器 最简单的方式是把 `dist/tjwater-cli/` 整个目录同步到 agent 服务器,然后直接执行: ```bash ./tjwater-cli/tjwater-cli help ``` 如果希望打包传输: ```bash cd TJWaterServerBinary/cli tar -C dist -czf tjwater-cli-linux-amd64.tar.gz tjwater-cli ``` 如果希望放到 PATH 中: ```bash ln -s /path/to/TJWaterServerBinary/cli/dist/tjwater-cli/tjwater-cli /usr/local/bin/tjwater-cli tjwater-cli help | jq ``` ## 运行与构建依赖 ```bash cd TJWaterServerBinary/cli python -m pip install -r requirements.txt python -m pip install -r requirements-build.txt ``` `requirements.txt` 仅包含运行 CLI 的依赖;`requirements-build.txt` 仅包含生成可执行文件所需的构建依赖。 ## 认证上下文 CLI 通过 `--auth-context` 读取 JSON 文件。常用字段: ```json { "server": "http://backend-host:8000", "access_token": "...", "project_id": "...", "network": "...", "username": "..." } ```