camscanner-cli 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +140 -0
  2. package/bin/run.js +43 -0
  3. package/package.json +20 -0
package/README.md ADDED
@@ -0,0 +1,140 @@
1
+ # camscanner-cli
2
+
3
+ CamScanner 文档处理命令行工具。
4
+
5
+ ## 编译
6
+
7
+ ### 前置要求
8
+
9
+ - Go 1.21+
10
+
11
+ ### 版本号规则
12
+
13
+ 版本号通过 `VERSION` 变量注入,默认值为 `dev`。正式发版时显式指定:
14
+
15
+ ```bash
16
+ make build VERSION=v1.0.0 # 正式包,版本号: v1.0.0
17
+ make debug VERSION=v1.0.0 # 调试包,版本号: v1.0.0-debug
18
+ ```
19
+
20
+ | 构建目标 | 版本号 | 端点 |
21
+ |----------|--------|------|
22
+ | `make build` | `$(VERSION)` | 生产环境 |
23
+ | `make debug` | `$(VERSION)-debug` | sandbox 环境 |
24
+
25
+ ### 常用命令
26
+
27
+ ```bash
28
+ # 本机编译(当前平台)
29
+ make build VERSION=v1.0.0
30
+
31
+ # 本机调试包(指向 sandbox)
32
+ make debug VERSION=v1.0.0
33
+
34
+ # 全平台交叉编译
35
+ make all VERSION=v1.0.0
36
+
37
+ # 全平台 + 复制到 releases/ 目录
38
+ make release VERSION=v1.0.0
39
+
40
+ # 全平台 sandbox 调试包
41
+ make all-debug VERSION=v1.0.0
42
+
43
+ # 清理
44
+ make clean
45
+ ```
46
+
47
+ ### 产物说明
48
+
49
+ | 目标 | 产物路径 |
50
+ |------|----------|
51
+ | `make build` / `make debug` | `dist/camscanner-cli` |
52
+ | `make all` | `dist/camscanner-cli-{os}-{arch}` |
53
+ | `make release` | `releases/{VERSION}/camscanner-cli-{os}-{arch}` |
54
+
55
+ 交叉编译覆盖平台:
56
+
57
+ - `darwin-amd64` (macOS Intel)
58
+ - `darwin-arm64` (macOS Apple Silicon)
59
+ - `linux-amd64`
60
+ - `linux-arm64`
61
+ - `windows-amd64` (.exe)
62
+ - `windows-arm64` (.exe)
63
+
64
+ ## 发版 & 上传 CDN
65
+
66
+ ### 发版流程
67
+
68
+ ```bash
69
+ # 1. 确保代码已提交到 master
70
+ git status # 确认工作区干净
71
+
72
+ # 2. 编译全平台正式包
73
+ make release VERSION=v1.0.0
74
+
75
+ # 3. 上传到 CDN
76
+ # CDN 目录结构需与安装脚本一致:
77
+ # https://data.camscanner.com/cli/releases/v{VERSION}/{binary}
78
+ #
79
+ # 示例:
80
+ # v1.0.0/camscanner-cli-darwin-amd64
81
+ # v1.0.0/camscanner-cli-darwin-arm64
82
+ # v1.0.0/camscanner-cli-linux-amd64
83
+ # v1.0.0/camscanner-cli-linux-arm64
84
+ # v1.0.0/camscanner-cli-windows-amd64.exe
85
+ # v1.0.0/camscanner-cli-windows-arm64.exe
86
+
87
+
88
+ # 4. 验证下载
89
+ curl -fsSL https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-darwin-arm64 -o /tmp/test-cli
90
+ chmod +x /tmp/test-cli
91
+ /tmp/test-cli --version
92
+ # 输出: v1.0.0
93
+
94
+ # 5. 打 tag 并推送
95
+ git tag v1.0.0
96
+ git push origin v1.0.0
97
+ ```
98
+
99
+ ### CDN 目录结构
100
+
101
+ ```
102
+ https://data.camscanner.com/camscanner-cli/releases/
103
+ └── v1.0.0/
104
+ ├── camscanner-cli-darwin-amd64
105
+ ├── camscanner-cli-darwin-arm64
106
+ ├── camscanner-cli-linux-amd64
107
+ ├── camscanner-cli-linux-arm64
108
+ ├── camscanner-cli-windows-amd64.exe
109
+ └── camscanner-cli-windows-arm64.exe
110
+ ```
111
+
112
+ 安装脚本(`csdocs-skill/scripts/setup.sh`)会按此路径拼接下载地址:
113
+
114
+ ```
115
+ ${CDN_BASE}/v${version}/camscanner-cli-${os}-${arch}
116
+ # 示例:v1.0.0 各平台下载地址
117
+ # macOS arm64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-darwin-arm64
118
+ # macOS amd64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-darwin-amd64
119
+ # Linux amd64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-linux-amd64
120
+ # Linux arm64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-linux-arm64
121
+ # Windows amd64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-windows-amd64.exe
122
+ # Windows arm64: https://data.camscanner.com/camscanner-cli/releases/v1.0.0/camscanner-cli-windows-arm64.exe
123
+ ```
124
+
125
+ ### 调试包发版(可选)
126
+
127
+ 调试包指向 sandbox 环境,用于内部测试:
128
+
129
+ ```bash
130
+ make all-debug VERSION=v1.0.0
131
+ ```
132
+
133
+ ## 本地开发
134
+
135
+ ```bash
136
+ # 编译调试包并运行
137
+ make debug VERSION=v1.0.0
138
+ ./dist/camscanner-cli --version
139
+ ./dist/camscanner-cli auth login
140
+ ```
package/bin/run.js ADDED
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { execFileSync } = require("child_process");
4
+ const path = require("path");
5
+ const os = require("os");
6
+
7
+ const PLATFORMS = {
8
+ darwin: {
9
+ arm64: "@camscanner-cli/darwin-arm64",
10
+ x64: "@camscanner-cli/darwin-x64",
11
+ },
12
+ linux: {
13
+ arm64: "@camscanner-cli/linux-arm64",
14
+ x64: "@camscanner-cli/linux-x64",
15
+ },
16
+ win32: {
17
+ arm64: "@camscanner-cli/win32-arm64",
18
+ x64: "@camscanner-cli/win32-x64",
19
+ },
20
+ };
21
+
22
+ const platform = os.platform();
23
+ const arch = os.arch();
24
+ const pkg = PLATFORMS[platform]?.[arch];
25
+
26
+ if (!pkg) {
27
+ console.error(`Unsupported platform: ${platform}-${arch}`);
28
+ process.exit(1);
29
+ }
30
+
31
+ const ext = platform === "win32" ? ".exe" : "";
32
+ const binPath = path.join(
33
+ require.resolve(`${pkg}/package.json`),
34
+ "..",
35
+ "bin",
36
+ `camscanner-cli${ext}`
37
+ );
38
+
39
+ try {
40
+ execFileSync(binPath, process.argv.slice(2), { stdio: "inherit" });
41
+ } catch (e) {
42
+ process.exit(e.status ?? 1);
43
+ }
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "camscanner-cli",
3
+ "version": "1.1.5",
4
+ "description": "CamScanner CLI tool",
5
+ "bin": {
6
+ "camscanner-cli": "bin/run.js"
7
+ },
8
+ "files": [
9
+ "bin/run.js"
10
+ ],
11
+ "optionalDependencies": {
12
+ "@camscanner-cli/darwin-arm64": "1.1.5",
13
+ "@camscanner-cli/darwin-x64": "1.1.5",
14
+ "@camscanner-cli/linux-arm64": "1.1.5",
15
+ "@camscanner-cli/linux-x64": "1.1.5",
16
+ "@camscanner-cli/win32-arm64": "1.1.5",
17
+ "@camscanner-cli/win32-x64": "1.1.5"
18
+ },
19
+ "license": "UNLICENSED"
20
+ }