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.
- package/README.md +140 -0
- package/bin/run.js +43 -0
- 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
|
+
}
|