Files
2026-06-02 14:54:08 +08:00

1.8 KiB

TJWater CLI

独立于服务端主代码的 Python CLI 文件夹,放在 TJWaterServerBinary/cli/ 下,供 agent 服务器使用编译后的可执行文件直接调用,并通过 stdout/stderr 参与管道。

构建可执行产物

cd TJWaterServerBinary/cli
python -m pip install -r requirements.txt
python -m pip install -r requirements-build.txt
chmod +x build.sh
./build.sh

构建完成后,直接使用编译产物:

./dist/tjwater-cli/tjwater-cli help

这个可执行文件可以直接参与管道:

./dist/tjwater-cli/tjwater-cli help | jq

当前采用 PyInstaller onedir 方式输出到 dist/tjwater-cli/,避免 onefile 在部分 agent/server 环境下依赖临时目录解包执行的问题。

如果需要在开发时直接走源码入口,也可以显式使用 Python:

python -m tjwater_cli help

部署到 agent 服务器

最简单的方式是把 dist/tjwater-cli/ 整个目录同步到 agent 服务器,然后直接执行:

./tjwater-cli/tjwater-cli help

如果希望打包传输:

cd TJWaterServerBinary/cli
tar -C dist -czf tjwater-cli-linux-amd64.tar.gz tjwater-cli

如果希望放到 PATH 中:

ln -s /path/to/TJWaterServerBinary/cli/dist/tjwater-cli/tjwater-cli /usr/local/bin/tjwater-cli
tjwater-cli help | jq

运行与构建依赖

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 文件。常用字段:

{
  "server": "http://backend-host:8000",
  "access_token": "...",
  "project_id": "...",
  "network": "...",
  "username": "..."
}