camscanner-cli
v1.1.8
Published
CamScanner CLI tool
Readme
camscanner-cli
CamScanner 文档处理命令行工具。
编译
前置要求
- Go 1.21+
版本号规则
版本号通过 VERSION 变量注入,默认值为 dev。正式发版时显式指定:
make build VERSION=v1.0.0 # 正式包,版本号: v1.0.0
make debug VERSION=v1.0.0 # 调试包,版本号: v1.0.0-debug| 构建目标 | 版本号 | 端点 |
|----------|--------|------|
| make build | $(VERSION) | 生产环境 |
| make debug | $(VERSION)-debug | sandbox 环境 |
常用命令
# 本机编译(当前平台)
make build VERSION=v1.0.0
# 本机调试包(指向 sandbox)
make debug VERSION=v1.0.0
# 全平台交叉编译
make all VERSION=v1.0.0
# WorkBuddy 全 OS/Arch 包 + 复制到 releases/ 目录
make release VERSION=v1.0.0
# 全平台 sandbox 调试包
make all-debug VERSION=v1.0.0
# 清理
make cleanAgent 平台
AGENT_PLATFORM 默认为官网平台 general,也可设为 workbuddy、skillhub、dumate、qoder 或 clawhub。
正式包和 sandbox 调试包都会注入该标识,API 与登录请求通过 X-IS-AGENT header 携带它。
直接执行 go build 时也默认使用 general。
make build VERSION=v1.2.0 AGENT_PLATFORM=dumate
make debug VERSION=v1.2.0 AGENT_PLATFORM=dumate
dist/camscanner-cli info
dist/camscanner-cli info --json
# workbuddy:本地产物位于 workbuddy/,CDN 上传仍使用版本根目录
make release VERSION=v1.2.0
# 单独发布一个平台到 releases/v1.2.0/dumate/
make release-target VERSION=v1.2.0 AGENT_PLATFORM=dumate
# 构建全部六个 target,每个 target 覆盖六种 OS/Arch
make release-all VERSION=v1.2.0release 固定构建 workbuddy;release-target 接受其余五个平台。
各 target 的构建临时目录为 dist/{target}/,发布目录中分别生成 checksums.txt。
latest-version.txt 仍在版本根目录生成一份。本地产物统一按平台分目录;CDN 上传路径与 Skill 的 cli_subpath 对应,WorkBuddy 上传时映射到 CDN 版本根目录:
| Agent 平台 | 发布目录 |
|------------|----------|
| workbuddy | releases/{VERSION}/workbuddy/ |
| general | releases/{VERSION}/general/ |
| skillhub | releases/{VERSION}/skillhub/ |
| dumate | releases/{VERSION}/dumate/ |
| qoder | releases/{VERSION}/qoder/ |
| clawhub | releases/{VERSION}/clawhub/ |
产物说明
| 目标 | 产物路径 |
|------|----------|
| make build / make debug | dist/camscanner-cli |
| make all | dist/camscanner-cli-{os}-{arch} |
| make release | releases/{VERSION}/workbuddy/camscanner-cli-{os}-{arch} |
交叉编译覆盖平台:
darwin-amd64(macOS Intel)darwin-arm64(macOS Apple Silicon)linux-amd64linux-arm64windows-amd64(.exe)windows-arm64(.exe)
发版 & 上传 CDN
发版流程
# 1. 确保代码已提交到 master
git status # 确认工作区干净
# 2. 编译全平台正式包
make release VERSION=v1.0.0
# 3. 上传到 CDN
# CDN 目录结构需与安装脚本一致:
# https://data.camscanner.com/cli/releases/v{VERSION}/{binary}
#
# 示例:
# v1.0.0/camscanner-cli-darwin-amd64
# v1.0.0/camscanner-cli-darwin-arm64
# v1.0.0/camscanner-cli-linux-amd64
# v1.0.0/camscanner-cli-linux-arm64
# v1.0.0/camscanner-cli-windows-amd64.exe
# v1.0.0/camscanner-cli-windows-arm64.exe
# 4. 验证下载
curl -fsSL https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-darwin-arm64 -o /tmp/test-cli
chmod +x /tmp/test-cli
/tmp/test-cli --version
# 输出: v1.0.0
# 5. 打 tag 并推送
git tag v1.0.0
git push origin v1.0.0CDN 目录结构
https://data.camscanner.com/camscanner-cli/releases/
└── v1.0.0/
├── camscanner-cli-darwin-amd64
├── camscanner-cli-darwin-arm64
├── camscanner-cli-linux-amd64
├── camscanner-cli-linux-arm64
├── camscanner-cli-windows-amd64.exe
└── camscanner-cli-windows-arm64.exe安装脚本(csdocs-skill/scripts/setup.sh)会按此路径拼接下载地址:
${CDN_BASE}/v${version}/camscanner-cli-${os}-${arch}
# 示例:v1.0.0 各平台下载地址
# macOS arm64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-darwin-arm64
# macOS amd64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-darwin-amd64
# Linux amd64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-linux-amd64
# Linux arm64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-linux-arm64
# Windows amd64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-windows-amd64.exe
# Windows arm64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-windows-arm64.exe调试包发版(可选)
调试包指向 sandbox 环境,用于内部测试:
make all-debug VERSION=v1.0.0本地开发
# 编译调试包并运行
make debug VERSION=v1.0.0
./dist/camscanner-cli --version
./dist/camscanner-cli auth login