proto-update-tool 1.0.3 → 1.0.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 +26 -0
- package/bin/git.factory.d.ts +1 -0
- package/bin/git.factory.d.ts.map +1 -1
- package/bin/git.factory.js +20 -6
- package/bin/git.factory.js.map +1 -1
- package/package.json +1 -1
- package/src/git.factory.ts +20 -6
package/README.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# 请下载 release.zip 并解压
|
|
2
2
|
|
|
3
|
+
## Nodejs 环境下使用
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx proto-update-tool@latest -h
|
|
7
|
+
|
|
8
|
+
proto-update-tool@1.0.3
|
|
9
|
+
Ok to proceed? (y)
|
|
10
|
+
|
|
11
|
+
Usage: Proto 助手 [options]
|
|
12
|
+
|
|
13
|
+
通过 Gitlab SSH 拉取 Proto 配置
|
|
14
|
+
|
|
15
|
+
Options:
|
|
16
|
+
-v, --version 显示版本
|
|
17
|
+
-h, --help 显示帮助信息
|
|
18
|
+
-p, --path <path> 指定 Proto 配置文件路径 (default: "./.proto.config.json")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 二进制可执行文件使用
|
|
22
|
+
|
|
23
|
+
- 下载对应平台的二进制可执行文件 [release](https://gitlab.playnexx.net/playdayyactive/get-git-proto/-/blob/master/release.zip?ref_type=heads)
|
|
24
|
+
- 解压文件
|
|
25
|
+
- Windows 直接运行 `proto-update-tool.exe` 会自动读取当前目录下的 `.proto.config.json` 文件
|
|
26
|
+
- Linux 运行 `./proto-update-tool`
|
|
27
|
+
- MacOS 运行 `./proto-update-tool`
|
|
28
|
+
|
|
3
29
|
```bash
|
|
4
30
|
Usage: Proto 助手 [options]
|
|
5
31
|
|
package/bin/git.factory.d.ts
CHANGED
package/bin/git.factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.factory.d.ts","sourceRoot":"","sources":["../src/git.factory.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"git.factory.d.ts","sourceRoot":"","sources":["../src/git.factory.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAwJF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,iBAiC3D;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,iBAGlD"}
|
package/bin/git.factory.js
CHANGED
|
@@ -20,7 +20,7 @@ async function readConfig(filename = ".proto.config.json") {
|
|
|
20
20
|
if (!x.repository || !x.ref || !x.outDir || !x.destPath) {
|
|
21
21
|
throw new Error("配置缺少必要字段 repository/ref/outDir/destPath");
|
|
22
22
|
}
|
|
23
|
-
return { repository: String(x.repository), ref: String(x.ref), outDir: String(x.outDir), destPath: String(x.destPath) };
|
|
23
|
+
return { repository: String(x.repository), ref: String(x.ref), outDir: String(x.outDir), destPath: String(x.destPath), fileFilter: String(x.fileFilter) };
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
function execCmd(cmd, args, cwd) {
|
|
@@ -58,16 +58,23 @@ function execCmdCapture(cmd, args, cwd) {
|
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
async function
|
|
61
|
+
async function copyDirFilter(src, dest, conf) {
|
|
62
62
|
const entries = await (0, fs_extra_1.readdir)(src, { withFileTypes: true });
|
|
63
63
|
await (0, fs_extra_1.mkdirSync)(dest, { recursive: true });
|
|
64
|
+
let regExp = new RegExp(/\.ts$/);
|
|
65
|
+
try {
|
|
66
|
+
regExp = new RegExp(eval(conf.fileFilter));
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
regExp = new RegExp(eval(`/\\.${conf.fileFilter}$/`));
|
|
70
|
+
}
|
|
64
71
|
for (const entry of entries) {
|
|
65
72
|
const s = path_1.default.join(src, entry.name);
|
|
66
73
|
const d = path_1.default.join(dest, entry.name);
|
|
67
74
|
if (entry.isDirectory()) {
|
|
68
|
-
await
|
|
75
|
+
await copyDirFilter(s, d, conf);
|
|
69
76
|
}
|
|
70
|
-
else if (entry.isFile() && entry.name
|
|
77
|
+
else if (entry.isFile() && regExp.test(entry.name)) {
|
|
71
78
|
await (0, fs_extra_1.copyFile)(s, d);
|
|
72
79
|
}
|
|
73
80
|
}
|
|
@@ -124,8 +131,15 @@ async function processRepo(conf) {
|
|
|
124
131
|
await (0, fs_extra_1.mkdirSync)(destRoot, { recursive: true });
|
|
125
132
|
await (0, fs_extra_1.removeSync)(destGen);
|
|
126
133
|
await (0, fs_extra_1.mkdirSync)(destGen);
|
|
127
|
-
await
|
|
128
|
-
|
|
134
|
+
await copyDirFilter(srcGen, destGen, conf);
|
|
135
|
+
let regExp = new RegExp(/\.ts$/);
|
|
136
|
+
try {
|
|
137
|
+
regExp = new RegExp(eval(conf.fileFilter));
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
regExp = new RegExp(eval(`/\\.${conf.fileFilter}$/`));
|
|
141
|
+
}
|
|
142
|
+
console.log(`已拷贝 ${conf.repository} 的 ${conf.ref} 下 ${conf.outDir} 目录下 ${regExp.source} 文件到 ${destGen}`);
|
|
129
143
|
await (0, fs_extra_1.removeSync)(cloneDir);
|
|
130
144
|
return { path: conf.repository, version: conf.ref, destGen, ...last ? { last } : {} };
|
|
131
145
|
}
|
package/bin/git.factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.factory.js","sourceRoot":"","sources":["../src/git.factory.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"git.factory.js","sourceRoot":"","sources":["../src/git.factory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/git.factory.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type RepoConfig = {
|
|
|
7
7
|
repository: string;
|
|
8
8
|
ref: string;
|
|
9
9
|
outDir: string;
|
|
10
|
+
fileFilter: string;
|
|
10
11
|
destPath: string;
|
|
11
12
|
};
|
|
12
13
|
|
|
@@ -34,7 +35,7 @@ async function readConfig(filename: string = ".proto.config.json"): Promise<Repo
|
|
|
34
35
|
if (!x.repository || !x.ref || !x.outDir || !x.destPath) {
|
|
35
36
|
throw new Error("配置缺少必要字段 repository/ref/outDir/destPath");
|
|
36
37
|
}
|
|
37
|
-
return { repository: String(x.repository), ref: String(x.ref), outDir: String(x.outDir), destPath: String(x.destPath) };
|
|
38
|
+
return { repository: String(x.repository), ref: String(x.ref), outDir: String(x.outDir), destPath: String(x.destPath), fileFilter: String(x.fileFilter) };
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -73,15 +74,22 @@ function execCmdCapture(cmd: string, args: string[], cwd?: string): Promise<{ co
|
|
|
73
74
|
});
|
|
74
75
|
}
|
|
75
76
|
|
|
76
|
-
async function
|
|
77
|
+
async function copyDirFilter(src: string, dest: string, conf: RepoConfig) {
|
|
77
78
|
const entries = await readdir(src, { withFileTypes: true });
|
|
78
79
|
await mkdirSync(dest, { recursive: true });
|
|
80
|
+
let regExp = new RegExp(/\.ts$/)
|
|
81
|
+
try {
|
|
82
|
+
regExp = new RegExp(eval(conf.fileFilter));
|
|
83
|
+
} catch {
|
|
84
|
+
regExp = new RegExp(eval(`/\\.${conf.fileFilter}$/`));
|
|
85
|
+
}
|
|
86
|
+
|
|
79
87
|
for (const entry of entries) {
|
|
80
88
|
const s = path.join(src, entry.name);
|
|
81
89
|
const d = path.join(dest, entry.name);
|
|
82
90
|
if (entry.isDirectory()) {
|
|
83
|
-
await
|
|
84
|
-
} else if (entry.isFile() && entry.name
|
|
91
|
+
await copyDirFilter(s, d, conf);
|
|
92
|
+
} else if (entry.isFile() && regExp.test(entry.name)) {
|
|
85
93
|
await copyFile(s, d);
|
|
86
94
|
}
|
|
87
95
|
}
|
|
@@ -141,8 +149,14 @@ async function processRepo(conf: RepoConfig): Promise<RepoResult> {
|
|
|
141
149
|
await mkdirSync(destRoot, { recursive: true });
|
|
142
150
|
await removeSync(destGen);
|
|
143
151
|
await mkdirSync(destGen);
|
|
144
|
-
await
|
|
145
|
-
|
|
152
|
+
await copyDirFilter(srcGen, destGen, conf);
|
|
153
|
+
let regExp = new RegExp(/\.ts$/)
|
|
154
|
+
try {
|
|
155
|
+
regExp = new RegExp(eval(conf.fileFilter));
|
|
156
|
+
} catch {
|
|
157
|
+
regExp = new RegExp(eval(`/\\.${conf.fileFilter}$/`));
|
|
158
|
+
}
|
|
159
|
+
console.log(`已拷贝 ${conf.repository} 的 ${conf.ref} 下 ${conf.outDir} 目录下 ${regExp.source} 文件到 ${destGen}`);
|
|
146
160
|
await removeSync(cloneDir);
|
|
147
161
|
return { path: conf.repository, version: conf.ref, destGen, ...last ? { last } : {} };
|
|
148
162
|
}
|